[xcz.kr prob18]
Web Basic 라는 제목의 xcz.kr 18번 문제입니다.
처음으로 웹 문제가 나왔습니다. 소스를 한번 보도록 하겠습니다.
변수들의 이름이 보기 안좋게 난독화 되어있습니다. 메모장의 기능인 control + h 을 사용하여 난독화 변수를
보기 쉽게 정리해줍시다.
보기 좋게 php코드만 따로 정리해주었습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <? $key = "Congratulations!</br>Key is ??????????????????"; $a = @$_COOKIE['c']; $b = @$_GET['g']; $c = @$_POST['p']; if(empty($a) || empty($b) || empty($c)){exit ('wrong T.T');} $d = $b . $a; $e = $c; function test($a){ $b = ''; for($i=0; $i < strlen($a); $i++){ $b = $b . ' - ' . ord(substr($a,$i,1)); } return $b; } if(test($d)==" - 103 - 105 - 118 - 101 - 109 - 101 - 112 - 97 - 115 - 115 - 119 - 111 - 114 - 100" || test($e) == " - 107 - 101 - 121 - 112 - 108 - 122 - 33"){ echo $key; } else{ echo 'wrong T.T'; } ?> | cs |
소스 코드의 조건을 보자면 쿠키값과 GET, POST값을 받는 변수 a,b,c의 값은 비어있으면 안되며
b.a를 연결한 d 에는 "givemepassword" 라는 문장이 들어가 있어야되고, c와 같은 e에는 "keyplz!" 라는 문장이 들어가 있어야합니다.
요약 하자면
c = password
g = giveme
p = keyplz! 가 있어야 합니다.
그래서 따로 파이썬 코드를 짜주어서 값을 넣어주었습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import urllib, urllib2 url = 'http://xcz.kr/START/prob/prob18.php?g=giveme' post_data = {'p':'keyplz!'} cookie_data = {'cookie':'PHPSESSID=hgd9b062teo4ipgotaejhlnlg3;' 'c=password'} post_data = urllib.urlencode(post_data) request = urllib2.Request(url,post_data,cookie_data) response = urllib2.urlopen(request) response = response.read() print response | cs |
Clear!
'Wargame > ▷ xcz.kr' 카테고리의 다른 글
[xcz.kr] prob34 - Get the key, If You Can (0) | 2017.06.14 |
---|---|
[xcz.kr] prob19 - Revershit! (0) | 2017.01.30 |
[xcz.kr] prob17 - Password Recover... (0) | 2017.01.29 |
[xcz.kr] prob16 - Mountains beyond mountains (0) | 2017.01.29 |
[xcz.kr] prob15 - Tic-Tac-Toe! (0) | 2017.01.29 |