name: "sqlmap"
command: "sqlmap"
enabled: true
# 简短描述（用于工具列表，减少token消耗）
short_description: "自动化SQL注入检测和利用工具，用于发现和利用SQL注入漏洞"
# 工具详细描述
description: |
  自动化SQL注入检测和利用工具，用于发现和利用SQL注入漏洞。

  **主要功能：**
  - 自动检测SQL注入漏洞
  - 支持多种数据库类型（MySQL, PostgreSQL, Oracle, MSSQL等）
  - 自动提取数据库信息（表、列、数据）
  - 支持多种注入技术（布尔盲注、时间盲注、联合查询等）
  - 支持文件上传/下载、命令执行等高级功能

  **使用场景：**
  - Web应用安全测试
  - SQL注入漏洞检测
  - 数据库信息收集
  - 渗透测试和漏洞验证

  **注意事项：**
  - 仅用于授权的安全测试
  - 某些操作可能对目标系统造成影响
  - 建议在测试环境中先验证
  - 使用 --batch 参数避免交互式提示
# 参数定义
parameters:
  - name: "url"
    type: "string"
    description: |
      目标URL，包含可能存在SQL注入的参数。

      **格式要求：**
      - 完整的URL，包含协议（http:// 或 https://）
      - 必须包含查询参数，参数值用 * 标记注入点
      - 或者直接提供完整的URL，sqlmap会自动检测参数

      **示例值：**
      - 标记注入点: "http://example.com/page?id=1*"
      - 完整URL: "http://example.com/page?id=1"
      - POST数据: "http://example.com/login" (需要配合data参数)
      - Cookie注入: "http://example.com/page" (需要配合cookie参数)

      **注意事项：**
      - URL必须可访问
      - 确保URL格式正确，包含协议前缀
      - 如果使用POST请求，需要配合data参数
      - 必需参数，不能为空
    required: true
    flag: "-u"
    format: "flag"
  - name: "batch"
    type: "bool"
    description: |
      非交互模式，自动选择默认选项，不需要用户输入。

      **使用场景：**
      - 自动化测试脚本
      - 批量扫描
      - 避免交互式提示

      **注意事项：**
      - 建议始终设置为true，避免工具等待用户输入
      - 默认值为true
    required: false
    default: true
    flag: "--batch"
    format: "flag"
  - name: "level"
    type: "int"
    description: |
      测试级别，范围1-5，级别越高测试越全面但耗时越长。

      **级别说明：**
      - Level 1: 基本测试，快速但可能遗漏漏洞
      - Level 2: 默认级别，平衡速度和覆盖率
      - Level 3: 扩展测试，更全面的检测
      - Level 4: 深度测试，包含更多payload
      - Level 5: 最全面测试，包含所有已知技术

      **建议：**
      - 快速扫描使用1-2
      - 常规测试使用3（默认）
      - 深度测试使用4-5

      **注意事项：**
      - 级别越高，请求数量越多，可能被WAF拦截
      - 默认值为3
    required: false
    default: 3
    flag: "--level"
    format: "combined" # --level=3
  - name: "data"
    type: "string"
    description: |
      POST数据字符串，用于POST请求的SQL注入检测。

      **格式：**
      - 表单数据格式，例如: "username=admin&password=123"
      - JSON格式，例如: '{"username":"admin","password":"123"}'

      **注意事项：**
      - 如果URL使用POST方法，需要提供此参数
      - 参数值中的注入点用 * 标记
    required: false
    flag: "--data"
    format: "flag"
  - name: "cookie"
    type: "string"
    description: |
      Cookie字符串，用于Cookie注入检测。

      **格式：**
      - 标准Cookie格式，例如: "sessionid=abc123; user=admin"

      **注意事项：**
      - 如果存在Cookie注入，需要提供此参数
    required: false
    flag: "--cookie"
    format: "flag"
  - name: "additional_args"
    type: "string"
    description: |
      额外的SQLMap参数。用于传递未在参数列表中定义的SQLMap选项。

      **示例值：**
      - "--dbs": 列出所有数据库
      - "--tables -D database": 列出指定数据库的表
      - "--dump -D database -T table": 导出表数据
      - "--os-shell": 获取操作系统shell
      - "--risk 2": 风险级别（1-3）
      - "--threads 10": 并发线程数
      - "--tamper space2comment": 使用tamper脚本绕过WAF

      **注意事项：**
      - 多个参数用空格分隔
      - 确保参数格式正确，避免命令注入
      - 此参数会直接追加到命令末尾
    required: false
    format: "positional"
