You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python篡改脚本为SQLmap实现十六进制实体编码?

SQLmap 十六进制实体编码篡改脚本实现

实现思路

SQLmap 的 tamper 脚本需要实现一个 tamper 函数,负责接收原始 payload 并返回编码后的结果。核心逻辑是将 payload 中的每个字符转换为 &#x[十六进制字符码]; 格式的实体编码。

完整脚本代码

创建名为 hex_entity_encode.py 的文件,内容如下:

#!/usr/bin/env python3

from lib.core.enums import PRIORITY

__priority__ = PRIORITY.NORMAL

def dependencies():
    pass

def tamper(payload, **kwargs):
    if not payload:
        return payload
    
    encoded_payload = []
    for char in payload:
        # 获取字符Unicode码点,转成小写十六进制字符串(去掉0x前缀)
        hex_code = hex(ord(char))[2:]
        encoded_payload.append(f'&#x{hex_code};')
    
    return ''.join(encoded_payload)

代码说明

  • __priority__:设置脚本优先级为 NORMAL,保证和其他 tamper 脚本兼容执行
  • dependencies():声明脚本无额外依赖项
  • tamper 函数:
    • 遍历 payload 中的每个字符,用 ord(char) 获取字符的 Unicode 码点
    • 通过 hex() 转换为十六进制格式,去掉默认的 0x 前缀后得到小写十六进制字符串
    • 将字符格式化为 &#xXX; 的实体编码格式,最终拼接成处理后的 payload

使用方法

在 SQLmap 命令中指定该 tamper 脚本即可生效:

sqlmap -u "目标测试URL" --tamper=hex_entity_encode.py [其他SQLmap参数]

比如输入 payload "abc",脚本会将其转换为 abc,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Trường An Tô Nguyễn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 15:25:20