SQLmap参数学习笔记
文章目录
简介
SQLmap是开源SQL注入漏洞检测/利用工具
可以检测动态页面中的GET/POST参数/cookie/User-Agent/Reeferer
数据榨取
文件系统访问
操作系统命令执行
XSS漏洞检测
五种漏洞检测技术
- 基于布尔的盲注检测
- 基于时间的盲注检测
- ’ and (select * from (select(sleep(3)))a–+
- 基于错误的检测
- 基于UNION联合查询的检测
- 适用于通过循环直接输出联合查询结果,否则只显示第一项结果
- 基于堆叠查询的检测
- ;堆叠多个查询语句
- 适用于非SELECT的数据修改/删除的操作
Options - 设置
-h / --help >> 显示常用参数的帮助信息
-hh >> 显示所有参数的帮助信息
–version >> 显示版本号
-v >> 设置显示信息的详细级别0-6,默认为1
显示等级
- 仅显示python回溯,错误和严重消息
- 还显示信息和警告消息
- 还显示调试消息
- 还显示注入的payload
- 还显示HTTP请求
- 还显示HTTP响应的头
- 还显示HTTP响应的页面内容
-v代替-v 2,-vv代替-v 3,-vvv代替-v 4…
Target - 目标
-u / --url >> 指定目标URL地址
-d >> 连接数据库
- sqlmap -d “mysql://user:passwd@1.1.1.1:3306/dvwa”
-l >> 可以对Burp/WebScarab代理的log记录进行检测
-m >> 扫描txt文件中的多个目标
-r >> 从文件中读取HTTP请求(POST注入时)
-g >> 将google搜索的结果作为URL地址进行检测
-c >> 读取配置文件作为扫描参数
sqlmap默认配置文件
/etc/sqlmap/sqlmap.conf
sqlmap不会自动调用配置文件
使用-u参数时,最好将URL地址用双引号括起来
对POST请求进行注入
方法一:对Burp-Log进行检测
sqlmap -l proxy.txt
方法二:对txt文本中读取请求进行检测
sqlmap -r post.txt
方法三:使用--data
参数提交POST请求
sqlmap -u "http://192.168.1.4/mutillidae/index.php?page=user-info.php" --data="username=1&password=1&login-php-submit-button=Login"
HTTPS检测
当目标站点为HTTPS时使用
sqlmap -u "1.1.1.1/index.php?id=3" --force-ssl
Request - 请求
HTTP方法
--method
强制改变HTTP请求的方式
HTTP数据
--data
用于提交POST请求参数(也支持GET请求)
--data=“username=123&password=123”
参数分割符
--param-del
sqlmap默认识别的URL参数分隔符为&,使用该参数可以改变这个默认值
HTTP请求头
cookie
--cookie
设置请求头中的cookie信息
--cookie-del
设置用于分隔cookie的分隔符,默认以;分隔
--live-cookies
用于实时更新服务器返回的set-cookie值
--load-cookies
提供一个包含Netscape/wget格式的cookie的特殊文件
--drop-set-cookie
忽略响应中的set-cookie,默认情况下在扫描过程中发现服务器响应的set-cookie时,会提示是否更新该cookie
–level设置为2以上级别时,会对cookie注入进行检测
User-Agent
--user-agent
/ -A
设置user-agent头
sqlmap默认为user-agent为sqlmap/1.5.5.1#dev (http://sqlmap.org)
,容易被目标服务器过滤掉
--random-agent
设置一个随机的user-agent
kali中该字典位于/usr/share/sqlmap/txt/user-agents.txt
--mobile
通过user-agent将客户端模拟为手机客户端
–level设置3或以上级别时,会对uesr-agent头注入进行检测
Host
--host
设置请求头中host的值
–level=5时,会对host头进行检测
Referer
--referer