sqlmapapi介绍&利用sqlmapapi发起扫描
字数 1669 2025-08-15 21:33:44
SQLMap API 使用详解
一、SQLMap API 概述
SQLMap 是 SQL 注入探测的强大工具,而 SQLMap API 提供了通过接口调用来操作 SQLMap 的方式,大大简化了命令执行流程。SQLMap API 分为两种模式:
- 基于 HTTP 协议的接口模式
- 基于命令行的接口模式
二、SQLMap API 服务端启动
基本启动方式
python sqlmapapi.py -s
启动后会在本地 8775 端口运行,并返回 admin token。
远程访问启动方式
python sqlmapapi.py -s -H "0.0.0.0" -p 8775
这样配置后,远程客户端可以通过指定 IP 和端口连接到 API 服务端。
三、基于命令行的接口模式
1. 启动客户端
本地连接:
python sqlmapapi.py -c
远程连接:
python sqlmapapi.py -c -H "192.168.1.101" -p 8775
2. 可用命令
| 命令 | 描述 |
|---|---|
help |
获取所有命令帮助 |
new ARGS |
开启新扫描任务 |
use TASKID |
切换 taskid |
data |
获取当前任务返回数据 |
log |
获取当前任务扫描日志 |
status |
获取当前任务扫描状态 |
option OPTION |
获取当前任务的选项 |
options |
获取当前任务所有配置信息 |
stop |
停止当前任务 |
kill |
杀死当前任务 |
list |
显示所有任务列表 |
flush |
清空所有任务 |
exit |
退出客户端 |
3. 检测注入流程
- 创建新任务:
new -u "http://www.example.com"
- 检查任务状态:
status
terminated: 扫描完成running: 扫描进行中
- 获取扫描结果:
data
返回内容包括数据库类型、payload、注入参数等信息。
四、基于 HTTP 协议的接口模式
1. 用户方法
GET /task/new: 创建新任务GET /task/<taskid>/delete: 删除现有任务
2. 核心交互函数
GET /option/list: 列出选项POST /option/get: 获取选项值POST /option/set: 设置选项值POST /scan/start: 启动扫描GET /scan/stop: 停止扫描GET /scan/kill: 终止扫描GET /scan/status: 获取扫描状态GET /scan/data: 获取扫描数据GET /scan/log: 获取扫描日志
3. 管理函数
GET /admin/list: 列出所有任务GET /admin/flush: 清空所有任务
五、SQLMap API 扫描流程详解
- 任务创建:通过
/task/new创建新任务,获取 taskid - 选项设置:通过
/option/set设置扫描参数 - 扫描启动:通过
/scan/start开始扫描 - 状态监控:通过
/scan/status监控扫描进度 - 结果获取:通过
/scan/data获取扫描结果
六、SQL 注入自动化实现流程
- 目标收集:收集待检测 URL
- 任务初始化:为每个 URL 创建独立任务
- 参数配置:设置扫描参数(如注入点、检测级别等)
- 批量扫描:并行启动多个扫描任务
- 结果分析:解析扫描结果,识别注入点
- 报告生成:整理扫描结果,生成报告
七、高级使用技巧
- 自定义 payload:通过 API 可以灵活设置自定义 payload
- 并发控制:合理控制并发任务数量,避免资源耗尽
- 结果过滤:对扫描结果进行二次处理,提取关键信息
- 集成开发:将 API 集成到自动化测试框架中
八、安全注意事项
- 使用 API 时注意保护 admin token
- 生产环境中建议使用 HTTPS 协议
- 合理设置防火墙规则,限制访问 IP
- 定期更新 SQLMap 版本,修复已知漏洞
通过 SQLMap API,可以实现高效的批量 SQL 注入检测,大大提升安全测试的效率。