buu sqltest

1.打开流量,过滤http,随便点开一流,在URI处发现了注入的语句,判断出是布尔盲注

image

2.首先用tshark提取出注入的语句

tshark -r 1.pcapng -Y "http.request" -T fields -e http.request.full_uri > data.txt

3.主要需要找到的就是上传语句猜测字符的payload,对比到第627行的语句(%20替换为空格)

?act=news&id=1 and ascii(substr(((select concat_ws(char(94), flag) from db_flag.tb_flag limit 0,1)), 1, 1))>100

4.根据标志性函数:ascii()、limit等可以判断出是从这里开始猜测字符,一直到末尾

image

5.上脚本

#SQL test:
import urllib.parse
f = open("data-sqltest.txt","r").readlines()
s = []
for i in range(627,972):
	data = urllib.parse.unquote(f[i])#url解码
	payload = data.split("and")[1]#截取and后面的字符
	number = payload.find("limit 0,1)), ")#确定大概的位置
	data1 = payload[number + 13:].split(",")[0]#取第一个数据
	data2 = payload[number + 13:].split(">")[1]#取>后的数据
	s.append([data1,data2])
#转码输出
for i in range(1,len(s)):
	if s[i][0] != s[i-1][0]:
    	print(chr(int(s[i-1][1])),end="")#输出变化前的最后一个字符
print(chr(int(s[-1][-1])))

6.得到flag

image

posted @ 2022-07-28 21:33  CPYQY_orz  阅读(190)  评论(0编辑  收藏  举报