Sqlmap Tamper编写

本文档介绍了如何编写SqlmapTamper脚本,这是一个用于修改payload的Python脚本。内容包括导入必要的库,如PRIORITY和common模块,设置脚本优先级,定义dependencies()和tamper()函数。tamper()函数是核心,用于处理payload字符串,而**kwargs则包含额外参数。示例脚本未实际修改payload,仅用于演示。
摘要由CSDN通过智能技术生成

Sqlmap Tamper编写

Sqlmap Tamper是sqlmap可以调用的脚本,已进行对payload的修改,如:双写、替换空格、编码等。

sqlmap可以使用--tamper调用,编写使用Python。

from lib.core.enums import PRIORITY

__priority__ = PRIORITY.LOWEST

def dependencies():
    pass

def tamper(payload, **kwargs):
    return payload

以上是一个最简单的tamper示例,简单到没有对payload进行任何更改。

这段脚本有四个部分:

  1. 导入所需的库

    此处导入了sqlmap中的enums中存储优先级常量的PRIORITY

    也可以导入sqlmap中其他的库,提供了很多封装好的函数和数据等。但是我对其自带的库并不熟悉,所以我大多会选择不引入其他的库而是自己编辑,除了下面的:

    from lib.core.common import singleTimeWarnMessage
    from lib.core.enums import DBMS
    

    分别是用以输出到sqlmap控制台的函数和一个数据库的枚举

  2. 设定一个优先级

    优先级的设定是改变__priority__的值,可以是:

    • LOWEST = -100
    • LOWER = -50
    • LOW = -10
    • NORMAL = 0
    • HIGH = 10
    • HIGHER = 50
    • HIGHEST = 100
  3. def dependencies()

    该函数用以申明脚本所支持或不支持的环境,当然也可以用作提示,如:

    def dependencies():
        singleTimeWarnMessage("这是我的tamper提示")
    
  4. def tamper(payload, **kwargs):

    该函数是tamper最重要的部分,第一个参数接收传入的payload,后一个则是其他参数,稍后会说。

    payload的类型是字符串,所以可以像操作普通字符串一样操作它。

    **kwargs传入的将会是一个字典,内容为空:

    {'headers': {}, 'delimiter': '&', 'hints': {}}
    

    可以调用singleTimeWarnMessage输出信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值