一,前言
随着网站开发人员的安全意识的提高,纷纷使用了各种防注入的手段。最简单的就是条件过滤了。
条件过滤,顾名思义就是黑名单机制,过滤掉符合条件的语句。因此我们要想办法绕过过滤,用其他方式来实现注入。
二、实验
1、GET-基于错误-过滤注释
根据提示:我们输入 id=1,得到结果
习惯性输入 id=1',得到结果
发现报错,使用联合查询获取其他有用信息,前提要注释掉后面的 ‘LIMIT 0,1 ,但是这里的代码过滤了注释。我们试试输入 id=1'or'看看能不能用布尔方式。
布尔方式成功,那么我们就用GET盲注中的布尔注入,id=1' and (select DATABASE()='security') or'
成功了,由于布尔按真假判断,那我们又三个判断,分别是 id,and 和 or'' ,这里的or ''恒为真,当ID为真的时候,控制真假结果就取决于and的值,则符合布尔注入。
2、GET - 基于错误 - 过滤OR&AND - 单引号
我们用上一节提到方法 id=1' and (select DATABASE()='security') or'
发现报错
证明这次过滤了 and 和 or ,那我们就无法进行布尔判断了。此处可以使用替代的办法,即使用『&&』替代『and』,『||』替代『or』。此处还有个问题,就是preg_replace按照代码中的用法是无限次替换的,但实际中却可以使用『oorr』这样来绕过。

版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论