sqlmap tamper脚本扩展开发(Bypass IPS)

首先先对比一下两个自带的tamper脚本,看看sqlmap调用tamper有没有依赖什么类库或者算法.

例如调用tamper是导入之后调用脚本里的某函数,那么我们开发的tamper脚本也应该有调用要用到的函数,主要看算法吧,咳咳

先来看看base64encode.py

#!/usr/bin/env python

"""
Copyright (c) 2006-2019 sqlmap developers (http://sqlmap.org/)
See the file ‘LICENSE‘ for copying permission
"""

from lib.core.convert import encodeBase64
from lib.core.enums import PRIORITY

__priority__ = PRIORITY.LOW

def dependencies():
    pass

def tamper(payload, **kwargs):
    """
    Base64-encodes all characters in a given payload

    >>> tamper("1‘ AND SLEEP(5)#")
    ‘MScgQU5EIFNMRUVQKDUpIw==‘
    """

    return encodeBase64(payload, binary=False) if payload else payload

再看看charencode.py

#!/usr/bin/env python

"""
Copyright (c) 2006-2019 sqlmap developers (http://sqlmap.org/)
See the file ‘LICENSE‘ for copying permission
"""

import string

from lib.core.enums import PRIORITY

__priority__ = PRIORITY.LOWEST

def dependencies():
    pass

def tamper(payload, **kwargs):
    """
    URL-encodes all characters in a given payload (not processing already encoded) (e.g. SELECT -> %53%45%4C%45%43%54)

    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 very weak web application firewalls that do not url-decode the request before processing it through their ruleset
        * The web server will anyway pass the url-decoded version behind, hence it should work against any DBMS

    >>> tamper(‘SELECT FIELD FROM%20TABLE‘)
    ‘%53%45%4C%45%43%54%20%46%49%45%4C%44%20%46%52%4F%4D%20%54%41%42%4C%45‘
    """

    retVal = payload

    if payload:
        retVal = ""
        i = 0

        while i < len(payload):
            if payload[i] == ‘%‘ and (i < len(payload) - 2) and payload[i + 1:i + 2] in string.hexdigits and payload[i + 2:i + 3] in string.hexdigits:
                retVal += payload[i:i + 3]
                i += 3
            else:
                retVal += ‘%%%.2X‘ % ord(payload[i])
                i += 1

    return retVal

发现脚本里面有一些共同点

1.都有导入PRIORITY类库该类库看样子是设置优先级的,来自lib.core.enums模块,参考

from lib.core.enums import PRIORITY

2.并且赋值了__priority__变量,该变量定义了优先级属性,参考

base64encode.py中

__priority__ = PRIORITY.LOW

charencode.py中

__priority__ = PRIORITY.LOWEST

3.都定义了一个名为dependencies的函数并且函数体code为pass,参考

def dependencies():
    pass

4.都定义了一个名为tamper的函数,函数接收两个参数,一个payload,还没处理过的payload,一个**kwargs,该参数接收键-值对数组,

我们接收payload之后做相应的算法处理之后,return 处理好的payload即可

共同点都列出来了,按着写就对了,示例:

#!/usr/bin/env python
from lib.core.enums import PRIORITY
__priority__ = PRIORITY.LOW#这里可以自己定义优先级
def dependencies():
    pass
def tamper(payload, **kwargs):
    return #处理之后的string payload

写完之后放到sqlmap的tamper目录即可

原文地址:https://www.cnblogs.com/V-Sec/p/12050605.html

时间: 2024-10-14 06:23:49

sqlmap tamper脚本扩展开发(Bypass IPS)的相关文章

使用sqlmap中tamper脚本绕过waf

使用sqlmap中tamper脚本绕过waf 刘海哥 · 2015/02/02 11:26 0x00 背景 sqlmap中的tamper脚本来对目标进行更高效的攻击. 由于乌云知识库少了sqlmap-tamper 收集一下,方便学习. 根据sqlmap中的tamper脚本可以学习过绕过一些技巧. 我收集在找相关的案例作为可分析什么环境使用什么tamper脚本. 小学生毕业的我,着能偷偷说一下多做一些收集对吸收知识很快. 0x01 start 脚本名:apostrophemask.py 作用:用u

使用sqlmap中tamper脚本绕过waf 【转载】

0x00 背景 sqlmap中的tamper脚本来对目标进行更高效的攻击. 由于乌云知识库少了sqlmap-tamper 收集一下,方便学习. 根据sqlmap中的tamper脚本可以学习过绕过一些技巧. 我收集在找相关的案例作为可分析什么环境使用什么tamper脚本. 小学生毕业的我,着能偷偷说一下多做一些收集对吸收知识很快. 0x01 start 脚本名:apostrophemask.py 作用:用utf8代替引号 1 Example: ("1 AND '1'='1") '1 AN

使用sqlmap中的tamper脚本绕过waf

使用sqlmap中tamper脚本绕过waf 脚本名:0x2char.py 作用:用UTF-8全角对应字符替换撇号字符 作用:用等价的CONCAT(CHAR(),...)对应替换每个(MySQL)0x <hex>编码的字符串 测试对象: MySQL 4,5.0和5.5 >>> tamper('SELECT 0xdeadbeef') 'SELECT CONCAT(CHAR(222),CHAR(173),CHAR(190),CHAR(239))' 脚本名:apostrophema

sqlmap之常用tamper脚本

常用tamper脚本 apostrophemask.py适用数据库:ALL作用:将引号替换为utf-8,用于过滤单引号使用脚本前:tamper("1 AND '1'='1")使用脚本后:1 AND %EF%BC%871%EF%BC%87=%EF%BC%871 base64encode.py适用数据库:ALL作用:替换为base64编码使用脚本前:tamper("1' AND SLEEP(5)#")使用脚本后:MScgQU5EIFNMRUVQKDUpIw== mult

Sqlmap Tamper大全

sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,目前支持的数据库是MS-SQL,,MYSQL,ORACLE和POSTGRESQL.SQLMAP采用四种独特的SQL注入技术,分别是盲推理SQL注入,UNION查询SQL注入,堆查询和基于时间的SQL盲注入.其广泛的功能和选项包括数据库指纹,枚举,数据库提取,访问目标文件系统,并在获取完全操作权限时实行任意命令.在许多情况下你可以通过使用sqlmap中的tamper脚本来对目标进行更高效的攻击. 本

Chrome扩展开发之三——Chrome扩展中的数据本地存储和下载

目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式 3.Chrome扩展开发之三——Chrome扩展中的数据本地存储和下载 4.Chrome扩展开发之四——Gmail API的简单介绍 5.Chrome扩展开发之五——OAuth2的理解 6.Chrome扩展开发之六——GmailAssist核心功能的实现(包括Gmail API的使用中的

【原创】PHP扩展开发入门

PHP扩展开发入门 作者:wf (360电商技术组) 在我们编写自己的第一个php扩展之前,先了解一下php的总体架构和执行机制. php的架构如图1所看到的. 当中一个重要的就是SAPI(server端应用编程端口),它使得PHP能够和其它应用进行数据交互,把外部错综复杂的外部环境进行抽象化,为内部的php提供一套固定和统一的接口.使得php自身不受外部影响,保持一定的独立性.常见的SAPI有CGI.FastCGI.Shell的CLI,apache的mod_php5,IIS的ISAPI. 另外

Chrome扩展开发之四——核心功能的实现思路

目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式 3.Chrome扩展开发之三——Chrome扩展中的数据本地存储和下载 4.Chrome扩展开发之四——核心功能的实现思路 如果你对GmailAssist感兴趣,可以在chrome商店中搜索“Gmail助手”,或点击这里直接访问商店来安装试用:如果你对GmailAssist的源码感兴趣,

PHP扩展开发(1):入门

有关PHP扩展开发的文章.博客已经很多了,比较经典的有: TIPI项目(http://www.php-internals.com/,强烈推荐) <Extending and Embedding PHP>(中文翻译见http://www.walu.cc/phpbook/,强烈推荐) <PHP核心技术与最佳实践>一书有一章专门讲PHP扩展开发的,不过版本较老,可供参考. <PHP5权威指南>一书中也有一章专门讲到了PHP的扩展开发. 我准备在此系列博文中总结我有关PHP扩展