15关:
![](https://img-blog.csdnimg.cn/4dcf28b47c6e4a638fff8fa74ef70400.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55aR5Ly85Zyo6YCD5Lq65bel5pm66IO9,size_20,color_FFFFFF,t_70,g_se,x_16)
在输入框内测试Username=asd,Password=123并点击提交后发现并没有什么卵用。
![](https://img-blog.csdnimg.cn/c77c5f054d3243d5951dfe5a8f956d92.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55aR5Ly85Zyo6YCD5Lq65bel5pm66IO9,size_20,color_FFFFFF,t_70,g_se,x_16)
在Username处尝试万能钥匙1‘ or 1=1#发现成功登录了。
接下来看源码分析问题:
![](https://img-blog.csdnimg.cn/b1c8b61de3e14b8e80eaae14f4503adf.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55aR5Ly85Zyo6YCD5Lq65bel5pm66IO9,size_20,color_FFFFFF,t_70,g_se,x_16)
由于红下划线处的username=‘$uname‘所以payload:1’ or 1=1#会使得username处闭合并且将从and以后的sql语句全部注释掉,因此无论username等于几后面的or 1=1为永真因此返回真值所以页面回显登录成功。然而当使用payload:1’ or 1=2#时,由于1=2为假值所以会返回登录不成功的页面。根据这个机制,我们可以在payload后面加上搜查语句当登录成功页面显示时则可代表数据库中有这条数据。
16关:
![](https://img-blog.csdnimg.cn/bfd1e41d5957494980d373b52f062adf.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55aR5Ly85Zyo6YCD5Lq65bel5pm66IO9,size_20,color_FFFFFF,t_70,g_se,x_16)
尝试万能钥匙1‘ or 1=1#,并没有卵用。
尝试万能钥匙1‘ or 1=1#,并没有卵用
尝试把‘换成“也没有什么卵用
尝试xxx“)or 1=1+注释好使
有试了一下时间盲注,结果睡死了。浏览器再也没醒来☹
看一眼源码,红线处为在php中的sql语句。有括号的。剩下的注入内容跟前两个差不多
17关:
老规矩,一顿测
![](https://img-blog.csdnimg.cn/33ed7015f39d478ba87f6711f9632d62.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55aR5Ly85Zyo6YCD5Lq65bel5pm66IO9,size_12,color_FFFFFF,t_70,g_se,x_16)
包括之后的payload测试
uname=1' or 1=1#&passwd=123&submit=Submit
uname=1)’ or 1=1#&passwd=123&submit=Submit
uname=1" or 1=1#&passwd=123&submit=Submit
uname=1)" or 1=1#&passwd=123&submit=Submit
uname=asd" or 1=1#&passwd=123&submit=Submit
uname=asd)" or 1=1#&passwd=123&submit=Submit
uname=asd" or 'a'='a'#&passwd=123&submit=Submit
全凉了
看源码
![](https://img-blog.csdnimg.cn/1d20f001ca81473ab49eef14c42d4a0c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55aR5Ly85Zyo6YCD5Lq65bel5pm66IO9,size_12,color_FFFFFF,t_70,g_se,x_16)
写了个输入过滤,干。过滤了空输入,输入长度(16个单词最多),魔术符号,检测当不为数字型数据时只能为数据库内的正确值。
此处为先检测用户名是否为正确的,所以用户名凉了
因为有个图忘记截了,其实代码再往下看的话会发现密码处并没有过滤所以尝试在密码处输入payload成功并且有回显。
![](https://img-blog.csdnimg.cn/f6c9bf2bc2e14a7fa5d1e85d054f95d6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55aR5Ly85Zyo6YCD5Lq65bel5pm66IO9,size_12,color_FFFFFF,t_70,g_se,x_16)
18关:
本关跟17关基本一样,只不过本关在17关源码过滤处的基础上加上了密码过滤但加入了UserAgent。因此可以做UserAgent注入。一下为源码
![](https://img-blog.csdnimg.cn/8efd3f0f04284886be950656a189f853.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55aR5Ly85Zyo6YCD5Lq65bel5pm66IO9,size_12,color_FFFFFF,t_70,g_se,x_16)
依然是过滤的function熟悉的配方
密码注入无了,但是上面有个uagent是根据HTTP_User_agent进来的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)