SQLmap Tamper-API:一款功能强大的tamper脚本处理工具
字数 1335 2025-08-11 17:40:17
SQLmap Tamper-API 使用详解
一、工具概述
SQLmap Tamper-API 是一款功能强大的 tamper 脚本处理工具,它解决了 SQLmap 原生只能接受 Python 语言编写 tamper 脚本的限制。通过该工具,研究人员可以使用自己熟悉的编程语言(如 Ruby、Perl、Java 等)编写 tamper 脚本,并在 SQLmap 中执行。
二、核心原理
1. 运行机制
tamper-api.py脚本作为中间层,负责 SQLmap 与外部 tamper 脚本的通信- 通信数据格式采用 JSON
- 数据传输流程:
tamper-api.py将 Payload 和 kwargs 以 JSON 格式发送给外部 tamper 脚本的 STDIN- 外部 tamper 脚本解析 JSON 数据并进行处理
- 处理后的数据以 JSON 格式通过 STDOUT 返回给
tamper-api.py tamper-api.py读取并解析数据后发送给 SQLmap
2. 数据格式
输入 JSON 结构:
{
"payload": "原始Payload字符串",
"kwargs": {
"headers": {...},
"其他参数": "..."
}
}
输出 JSON 结构(处理后):
{
"payload": "处理后的Payload字符串",
"kwargs": {
"headers": {...},
"其他参数": "..."
}
}
三、安装与配置
- 克隆项目到本地:
git clone https://github.com/KINGSABRI/sqlmap-tamper-api.git
- 将
tamper-api.py脚本复制到 SQLmap 的 tamper 目录中:
cp sqlmap-tamper-api/tamper-api.py /path/to/sqlmap/tamper/
- 参考
tamper-scripts/[YOUR_LANGUAGE]目录中的示例编写自己的 tamper 脚本
四、使用教程
基本用法
sqlmap -v3 -u http://example.com/pages.php?page=1 --tamper tamper-api your_script.ext
其中:
-v3设置详细级别为 3(可选)-u指定目标 URL--tamper指定使用的 tamper 脚本(先tamper-api,然后是您的脚本)
Ruby 示例脚本解析
#!/usr/bin/env ruby
# Author: KING SABRI | @KINGSABRI
# Description: Base64 encoding all characters in a given payload
# Requirements: None
require 'json'
require 'base64'
@json = JSON.parse(ARGV[0]) # 解析传入的JSON参数
@payload = @json["payload"] # 获取原始Payload
@kwargs = @json["kwargs"] # 获取其他参数
# 对Payload进行Base64编码
@json["payload"] = Base64.urlsafe_encode64(@payload)
# 输出处理后的JSON
print @json.to_json
开发您自己的 tamper 脚本
-
脚本必须能够:
- 通过命令行参数接收 JSON 输入
- 解析 JSON 数据
- 处理 payload 和/或 kwargs
- 输出处理后的 JSON 数据
-
不同语言的实现可参考项目中的示例:
- Ruby
- Perl
- Java
- 其他支持的语言
五、注意事项
- 确保
tamper-api.py位于 SQLmap 的 tamper 目录中 - 外部 tamper 脚本需要有执行权限
- 脚本必须正确处理输入输出格式
- 对于编译型语言,需要先编译生成可执行文件
- 确保脚本依赖的环境和库已正确安装
六、高级应用
1. 多脚本组合使用
可以组合多个 tamper 脚本(包括原生 Python tamper 脚本):
sqlmap -u URL --tamper tamper-api script1.rb,tamper-api script2.pl,space2comment
2. 复杂数据处理
利用 kwargs 传递和修改更多信息:
- 修改 HTTP 头
- 处理 Cookie
- 调整请求参数
3. 调试技巧
- 使用
-v 3或更高详细级别查看处理过程 - 单独测试 tamper 脚本的输入输出
- 检查脚本的返回码和错误输出
七、项目资源
项目地址: GitHub传送门
包含:
- 核心脚本
tamper-api.py - 多种语言的示例脚本
- 使用文档
八、总结
SQLmap Tamper-API 通过引入中间层和标准化数据格式,打破了 SQLmap 只能使用 Python tamper 脚本的限制,使安全研究人员能够使用自己熟悉的编程语言开发 tamper 脚本,大大提高了灵活性和开发效率。