一、sqlmap简介1. 概况,下面我们就来聊聊关于sqlmap注入教程?接下来我们就一起去了解一下吧!
sqlmap注入教程
一、sqlmap简介
1. 概况
开源渗透测试工具,自动检测和利用SQL注入漏洞并接管数据库服务器。
2. 特性
(1)支持众多数据库 MSF
(2)支持六种SQL注入技术:布尔,时间,错误,Union,堆栈查询,带外信道
(3)支持使用tamper脚本进行定制化的攻击
(4)支持msf和meterpreter的联动
3. 简单扫描
sqlmap -u <url>
二、sqlmap参数说明
1. 目标指定类参数
(1)-d
“DBMS:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME”
直接链接数据库
(2)-u <url> 指定url
(3)-l <.log文件> 从log文件中解析目标
(4)-m <文本文件> 从文件中解析目标(日志文件指http请求的日志文件,会自带cookie)
(5)-g <搜索内容> 以google搜索结果作为目标,注意搜索内容中引号要注意转义
2. 请求、认证类参数(post重点内容)
(1)–method=<http方法> 指定使用的http方法
(2)–data=<post数据> 提交post数据并对post数据进行测试
(3)–param-del=<分隔符> 指定参数的分隔符
(4)–cookie <cookie键值对> 添加cookie http请求头(当–level不小于2时,sqlmap会对cookie头检测是否可以注入)
(5)–headers <http请求头字段和字段值> 添加http请求头,不同的头使用“\n”分隔
(6)–auth-type、–auth-cred 指定认证方式并指定使用的凭证
(7)–auth-file 指定使用的证书文件
3. 优化类参数
(1)–keep-alive 使用http长连接,该参数与“–proxy”参数矛盾
(2)–null-connection 只获取http响应的长度(大小)而不获取真正的响应体,可以节约布尔型盲注使用的带宽
(3)– threads=<number> 设定线程数
(4)-o 相当于同时设定以上三个参数
4. 注入功能类参数
(1)-p <参数列表> 指定要测试的参数不同的参数使用逗号分隔
(2)–skip=<参数列表> 指定哪些参数不测试,不同参数使用逗号分隔
(3)* 指出为静态网页的参数位置,如“/id/1*/”
(4)–dbms <数据库类型> 指定数据库类型 一般不要
(5)–prefix <前缀> 指定payload的前缀和后缀
5. 用于sql注入漏洞利用的参数
5.1 获取数据库内容的常用命令
(1)-b/–banner 获取数据库版本
(2)-current-user 显示当前数据库用户名
(3)–is-dba 判断当前用户是否为管理员用户
(4)–dbs 列出数据库系统的所有数据库
5.2 获取数据库内容
(1)–dbs 爆库
-D 用数据库
(2)–tables/–exclude-sysdbs/-D 爆表
(3)–columns/-C/-T/-D 爆字段
(4)–dump/-C/-T/-D/–start/–stop/–first/–last 爆内容
6. 其他重要参数
(1)–proxy、–proxy-cred、–proxy-file和–ignore-proxy 关于代理的参数
(2)–tor、–tor-type、–tor-port和–check-tor(所有流量经过tor) 关于tor匿名网络的参数
(3)–risk 指定风险等级,告诉sqlmap是否要使用高风险的payload(删库改库)
(4)–level 指定检测等级,告诉sqlmap检测的范围有多大,*该参数比较笼统,可以用-p替代他
(5)–technique 指定要使用的注入技术,默认情况下sqlmap会使用所有sql注入技术
(6)
–common-tables和–common-columns 暴力破解表名和列名
三、sqlmap实际应用
1. 检测sql注入漏洞的存在
sqlmap -m <文件> –level <数字> –risk <数字>……
2. 使用sqlmap获取数据
(1)–dbs 爆库
-D 用数据库
(2)–tables 爆表
-T 用表
(3)–columns
(4)–dump(注意指定库)
–dump -all 脱库
3. 使用sqlmap执行系统命令
(1)–os-cmd <命令>
(2)–os-pwn –msf-path <路径>——开启一个meterpreter session
(仅限mysql、postgersql、mssql)
四、sqlmap扩展脚本——tamper脚本
1. Tamper脚本简介
tamper脚本是sqlmap中用于绕过waf或应对网站过滤逻辑的脚本,sqlmap自带了一些tamper脚本,我们可以在sqlmap的tampet目录下查看它们,用户也可以根据已有的tamper脚本来编写自己的tamper脚本(绕过逻辑)
2. Tamper脚本使用
(1)sqlmap -u <url>——tamper <tamper脚本>
(2)tamper脚本若放在tamper/目录下则可以直接写文件名而不用写全路径
3. Tamper脚本编写