Sqlmap工具学习
Sqlmap的功能有从数据库提权数据如果权限较大可以在操作系统上执行命令、读写文件;检测动态页面中的get/post参数、cookie、http头以及xss漏洞检测。
一、特点及功能
- Sqlmap的探测技术包括:
- 布尔型盲注检测;
- 时间的盲注检测
- 显错式注入
- Union联合查询
- 堆叠查询检测(;堆叠多个查询语句)
- 支持枚举用户、密码哈希、权限、角色、数据库、表和列;
- 自动识别加密方式,并且可以使用字典解密;
- 数据库直接连接 -d(不通过sql注入,必须知道账号密码、IP、端口这些数据库信息)
- 与burpsuite、google联合使用,支持一些表达式来限定测试目标
- Get、post、cookie、Referer、user-agent(可指定并且cookie过期后自动处理set-cookie头,更新cookie信息)
- 限速:最大兵法、延时发送的策略
- 文件上传下载、启动并执行存储过程、访问Windows注册表
二、实战
1、get方法
Sqlmap –u http://www.example.com/index.php?page=user-info.php&username=1&password=6&user-info-php –p username –f
(-f 检测数据库足迹和指纹信息)
2.把要扫描的目标写进列表文件中
Sqlmap –m list.txt
3.扫描Google搜索的结果
Sqlmap –g “inurl:\”.php?id=1\””
4.POST方法
(1)使用burp代理把请求截取下来,黏贴到head.txt文件
Sqlmap –r head.txt
(2)使用burp 的log文件:sqlmap –l log.txt
5.https
Sqlmap –u “https://www.example.com/a.php?id=1“ --force-ssl
6.扫描的配置文件
Sqlmap –c sqlmap.conf
7.数据段:--data(get/post都适用)
Sqlmap –u http://www.example.com/1.php --data=”user=1&pass=2” –p user --dbs –f
8.变量分割符:如果分割变量的符合不用&而改为;或其他的符号则可用--param-del=
Sqlmap –u http://www.example.com/1.php --data=”user=1&pass=2” –param-del=”;” –f
9.cookie头:--cookie(检测cookie中的注入点但是level>=2,set-cookie / --drop-set-cookie)
Sqlmap –u “http://www.example.com/a.php?id=1” –cookie=”sdaadasddas” --dbs -f
10.—user-agent / --random-agent(/usr/share/txt/user-agents.txt)检测其中的注入点level>=3
Sqlmap –u “http://www.example.com/a.php?id=1” --user-agent=”asdasdasd” –dbs
Sqlmap –u “http://www.example.com/a.php?id=1” --random-agent --dbs
Sqlmap检测user-agent中的注入点 Level>=3
11.host头:--host(level=5) / referer头:--referer( 检测其中的注入点level>=3)/额外的header:--headers / --methid=GET/POST
Sqlmap –u “http://www.example.com/a.php?id=1” –referrer=”asdasd” –dbs
12.http(s)代理
--proxy=”http://127.0.0.1:端口”
--ignore-proxy : 忽略系统级别的代理设置,通常用于扫描本地网络目标
13.--delay :每次http(s)请求之间延迟时间单位为秒默认无延迟
--timeout :请求超时时间,默认为30秒,
--retries: 连接超时重试次数,默认3次
--ranfomize: 长度、类型与原始值保持一致的前提下,指定每次请求随机取值的参数名
eg:--timeout=”9” --retries=”60”
Sqlmap –u “http://www.example.com/a.php?id=1”如果需要id的值随机取值的话就需要--ranfomize
14.—scope :过滤日志内容,通过正则表达式筛选扫面对象
Sqlmap –l burpsuit.log --scope=”(www)?\.target\.(com|net|org)”
Sqlmap –l 2.log –scope=”(19)?\.168\.20\.(1|10|100)” –level 3 --dbs
15.--safe-url / --safe-freq
检测和盲注阶段会产生大量的失败请求,服务器可能因此销毁session
每发送--safe-freq次注入请求后,发送一次正常的请求
16.--skip-urlencode:默认GET方法会对传输内容进行编码,这个参数相当于一个开关加上就不进行编码用于原始字符提交数据
17.--eval :每次请求前执行python代码,每次请求更改或增加新的参数
--predict-output:j不断缩小检测范围提高效率
--keep-alive:使用HTTP(s)长连接,性能好
--null-connection:只获取相应页面的大小值不是具体内容(用于盲注,根据大小比较)降低网络带宽消耗
--threads:最大并发线程默认为1和—predict-output不兼容