一开始,直接看页面源代码,发现提示:siyrce.txt进去查看,发现是PHP代码
经过分析可知:
想要得到flag必须先绕过这3点:
- 不能使用上述关键字
- 数据库影响数为1
- 通过第三个if
第一个不使用即可通过
第二个返回结果只能又一条(说明用户不止一个)
确定一下当前用户人数,由于第一个过滤了,所以使用limit 1 offset 1来判断人数
1‘ or 1 limit 1 offset 0# 返回亦可赛艇!(一个人)偏移量从0开始
1’or 1 limit 1 offset 1# 返回亦可赛艇!(两个人)
1‘ or 1 limit 1 offset 2# 返回一颗赛艇!(没有第三人)
由此推出又两个用户
第三个输入的密码和数据库的密码要相同
这里可以用这个语句group by pwd with rollup(分组后会在多一行统计)
由于对字符串统计无效第三行的pwd结果是NULL这样就可以通过
1‘ or 1 group by pwd with rollup limit 1 offset 2#
由于使用了with rollup后会多出一条,所以offset 2 可以正确返回NULL
密码栏不需要输入,默认为NULL,输入了就不是NULL了
本人也是初学者,参考了许多大佬的wp 自己写出来后有什么错误的地方,希望大家指出,谢谢!
时间: 2024-10-05 19:45:01