插件窝 干货文章 如何利用sqlmapapi发起扫描

如何利用sqlmapapi发起扫描

扫描 SQLMapAPI HTTP 使用 159    来源:    2025-04-22

使用SQLMapAPI发起扫描指南

SQLMapAPI是sqlmap提供的RESTful API接口,允许用户通过HTTP请求来控制sqlmap进行扫描。以下是详细的使用步骤:

1. 启动SQLMapAPI服务

首先需要启动SQLMapAPI服务:

python sqlmapapi.py -s

默认监听地址是127.0.0.1:8775,可以使用-H-p参数修改监听地址和端口。

2. 基本使用流程

使用SQLMapAPI的基本流程如下:

  1. 创建一个新任务
  2. 设置任务选项
  3. 启动扫描
  4. 获取扫描状态和结果

3. 实际操作步骤

3.1 创建新任务

curl -v "http://127.0.0.1:8775/task/new"

响应示例:

{
    "taskid": "1a2b3c4d5e",
    "success": true
}

3.2 设置扫描选项

使用获取的taskid设置扫描选项:

curl -v -H "Content-Type: application/json" -X POST -d '{"url": "http://testphp.vulnweb.com/artists.php?artist=1"}' "http://127.0.0.1:8775/scan/1a2b3c4d5e/start"

常用选项参数: - url: 目标URL - data: POST数据 - cookie: Cookie值 - level: 测试等级(1-5) - risk: 风险等级(1-3) - technique: 测试技术(B, E, U, S, T, Q) - proxy: 代理设置

3.3 查看扫描状态

curl -v "http://127.0.0.1:8775/scan/1a2b3c4d5e/status"

响应示例:

{
    "status": "running",
    "returncode": null
}

3.4 获取扫描结果

curl -v "http://127.0.0.1:8775/scan/1a2b3c4d5e/data"

3.5 停止扫描

curl -v "http://127.0.0.1:8775/scan/1a2b3c4d5e/stop"

3.6 删除任务

curl -v "http://127.0.0.1:8775/task/1a2b3c4d5e/delete"

4. 高级用法

4.1 批量扫描

可以编写脚本自动化处理多个目标:

import requests

API_URL = "http://127.0.0.1:8775"
targets = ["http://target1.com", "http://target2.com"]

for target in targets:
    # 创建任务
    res = requests.get(f"{API_URL}/task/new")
    taskid = res.json()["taskid"]

    # 设置选项并启动扫描
    options = {"url": target, "level": 3, "risk": 2}
    requests.post(f"{API_URL}/scan/{taskid}/start", json=options)

    # 可以在这里添加状态检查逻辑

4.2 使用admin接口

SQLMapAPI还提供了admin接口用于管理:

# 获取服务器信息
curl "http://127.0.0.1:8775/admin/list"

# 刷新服务器
curl "http://127.0.0.1:8775/admin/flush"

5. 安全注意事项

  1. 不要将SQLMapAPI暴露在公共网络中
  2. 考虑使用--server-auth参数设置认证
  3. 使用HTTPS加密通信(如果需要远程访问)
  4. 定期清理已完成的任务

6. 常见问题解决

问题1: 连接被拒绝 - 确保SQLMapAPI服务已启动 - 检查防火墙设置

问题2: 任务不启动 - 检查选项参数是否正确 - 查看SQLMapAPI日志输出

问题3: 性能问题 - 对于大量扫描,考虑分布式部署 - 调整扫描参数降低资源消耗

通过SQLMapAPI,您可以轻松地将sqlmap集成到自动化安全测试流程中,实现批量扫描和结果收集。