SQL注入之绕过条件过滤
2019-12-19 12:32:54 Author: www.secpulse.com(查看原文) 阅读量:381 收藏

一,前言

随着网站开发人员的安全意识的提高,纷纷使用了各种防注入的手段。最简单的就是条件过滤了。

条件过滤,顾名思义就是黑名单机制,过滤掉符合条件的语句。因此我们要想办法绕过过滤,用其他方式来实现注入。

二、实验

1、GET-基于错误-过滤注释

    image.png

    根据提示:我们输入 id=1,得到结果

    image.png

    习惯性输入 id=1',得到结果

    image.png

       发现报错,使用联合查询获取其他有用信息,前提要注释掉后面的 ‘LIMIT 0,1 ,但是这里的代码过滤了注释。我们试试输入 id=1'or'看看能不能用布尔方式。

    image.png

    布尔方式成功,那么我们就用GET盲注中的布尔注入,id=1' and (select DATABASE()='security') or'

    image.png

    成功了,由于布尔按真假判断,那我们又三个判断,分别是 id,and 和 or'' ,这里的or ''恒为真,当ID为真的时候,控制真假结果就取决于and的值,则符合布尔注入。

2、GET - 基于错误 - 过滤OR&AND - 单引号

image.png

我们用上一节提到方法 id=1' and (select DATABASE()='security') or'   

image.png

发现报错

证明这次过滤了 and 和 or ,那我们就无法进行布尔判断了。此处可以使用替代的办法,即使用『&&』替代『and』,『||』替代『or』。此处还有个问题,就是preg_replace按照代码中的用法是无限次替换的,但实际中却可以使用『oorr』这样来绕过。

本文作者:伟大娃娃

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/120856.html


文章来源: https://www.secpulse.com/archives/120856.html
如有侵权请联系:admin#unsafe.sh