18.
<?
$key = "Congratulations!</br>Key is ??????????????????";
$liillillilliliili = @$_COOKIE['c'];
$liillillliiiliili = @$_GET['g'];
$lilllillliiiliili = @$_POST['p'];
if(empty($liillillilliliili) || empty($liillillliiiliili) || empty($lilllillliiiliili)){exit ('wrong T.T');}
$lililillliiiliili = $liillillliiiliili . $liillillilliliili;
$lilililliiiiliill = $lilllillliiiliili;
function test($a){
$b = '';
for($i=0; $i < strlen($a); $i++){
$b = $b . ' - ' . ord(substr($a,$i,1));
}
return $b;
}
if(test($lililillliiiliili)==" - 103 - 105 - 118 - 101 - 109 - 101 - 112 - 97 - 115 - 115 - 119 - 111 - 114 - 100" || test($lilililliiiiliill) == " - 107 - 101 - 121 - 112 - 108 - 122 - 33"){
echo $key;
}
else{
echo 'wrong T.T';
}
?>
라고 소스가 있다. 가벼운 난독화가 적용되었는데 아래의 echo $key부분을 출력하면 된다.
키를 출력하기 위해서는
1. 여기서 거짓이 되게 하여 exit로 가지 않게 한다.
if(empty($liillillilliliili) || empty($liillillliiiliili) || empty($lilllillliiiliili)){exit ('wrong T.T');}
2. 아래 조건문을 참을 만들어줘야 된다.
if(test($lililillliiiliili)==" - 103 - 105 - 118 - 101 - 109 - 101 - 112 - 97 - 115 - 115 - 119 - 111 - 114 - 100" || test($lilililliiiiliill) == " - 107 - 101 - 121 - 112 - 108 - 122 - 33")
위의 조건문은 간단하다. 변수 3개가 비어있지 않으면 되는데
변수 3개가 @$_COOKIE['c'], @$_GET['g'], @$_POST['p']; 이다. 이걸 그냥 아무 값으로 설정해준다.
또 2번 조건문은 쉬운 문제라 그런지 앞의 조건이 맞거나 뒤의 조건이 맞으면 되는데...
앞부분보다 뒷부분이 간단하므로 뒷부분의 조건을 참으로 만들어주면...
뒷부분의 조건은 test($lilililliiiiliill)(@$_POST['p'])가 문자열에서 -를 빼고 숫자들을 각각
아스키코드값으로 만들어줘서 이어준 값이랑 같으면 된다.
import urllib2,re str = re.findall('(\d+)',"107 - 101 - 121 - 112 - 108 - 122 - 33") ans = [] for i in range(len(str)): ans.append(chr(int(str[i]))) req = urllib2.Request('http://xcz.kr/START/prob/prob18.php?g=a','p='+''.join(ans)) req.add_header('cookie','PHPSESSID=쿠키; c=a') print urllib2.urlopen(req).read()
앞부분 조건도 만족시켜보면...
import urllib2,re str = re.findall('(\d+)'," - 103 - 105 - 118 - 101 - 109 - 101 - 112 - 97 - 115 - 115 - 119 - 111 - 114 - 100") ans = [] for i in range(len(str)): ans.append(chr(int(str[i]))) ans = ''.join(ans) req = urllib2.Request('http://xcz.kr/START/prob/prob18.php?g='+ans[0:len(ans)/2],'p=a') req.add_header('cookie','PHPSESSID=쿠키; c='+ans[len(ans)/2:]) print urllib2.urlopen(req).read()
.
'webhacking > etc' 카테고리의 다른 글
xcz.kr 21번. (0) | 2014.12.07 |
---|---|
xcz.kr 32번. (0) | 2014.12.07 |
GoogleBig - HackGame (0) | 2014.12.01 |
Enigmagroup basic/Prerequisites, Spoofing, URL Manipulation (0) | 2014.11.30 |
overthewire natas 11 (0) | 2014.11.24 |