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