Less-18:
这一关看过源码后发现username和password都进行了check_input,然后瞬间迷茫了,两个输入的地方都没办法进行注入了啊。后来看了下源码,发现了一个insert
这里可以用burp_suite来进行抓包修改,软件安装参考
[burp的安装]:(https://blog.csdn.net/weixin_43733035/article/details/86593541)。
抓到包之后修改User-Agent就行了,我在这关还是用的updatexml,
Clause
为想要查询的子句。
注意: 在这个语句中,先检查语句是否闭合,再执行报错函数updatexml
,如果报错语句updatexml
没有报错才执行插入语句insert(这一步才检查插入语句参数),如果updatexml
函数直接报错,也就不检查插入语句参数了。源码的insert语句中原本有三个一(1,1*,1**)
,然后1可以被or条件替换,所以可以当作一个语句,后面1*和1**
是为了和insert数量一致。如果updatexml报错的话,那么1*和1**
要不要都无所谓,但是改成正确的语句例如将concat('#',(Clause),'#')
改为concat(Clause)
的话,不要1*和1**
就会报错说字段不一样,加上1*和1**
就是正常页面。
Less-19:
先登录正确的用户查看,发现显示了Referer,只要修改Referer语句就行,参考Less-18。
Less-20:
先登录正确的用户查看,
发现给出了好多地方,我用了一个' or updatexml(1,concat('#',(select database()),'#'),1)#
语句将它修改了不同的地方,最后发现只有插入到cookie里面可以注入,于是我们将查询语句插入到cooker中就行了,具体参考Less-18。