作业1:Burp Suite 环境配置及 SQL 注入实验
Posted 柯西没科气
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作业1:Burp Suite 环境配置及 SQL 注入实验相关的知识,希望对你有一定的参考价值。
Burp Suite 环境配置及 SQL 注入实验
1. 环境准备
1.1. phpStudy 和 DVWA
-
首先将老师提供好的
phpstudy2018
解压到合适目录,这里我的解压目录为:D:\\Dev\\phpStudy
。然后将DVMA
解压并放到 phpstudy 的WWW
目录下,具体目录为:D:\\Dev\\phpStudy\\PHPTutorial\\WWW
。 -
启动 phystudy2018,点击“mysql管理器”,然后点击 “phyMyAdmin”,电脑的默认浏览器会打开数据库的登陆界面,由于电脑上已经安装过 MySQL 数据库,所以在这里直接输入自己以前设置的数据库的用户名和密码即可。如果之前没有装过 MySQL,那么默认的用户名和密码都是
root
。输入正确的用户名和密码之后便进入数据库管理界面,点击数据库,创建一个名为dvwa
的数据库。 -
进入
D:\\Dev\\phpStudy\\PHPTutorial\\WWW\\DVWA-master\\config
目录下,备份之后修改config.inc.php.dist
文件,具体修改如下:$_DVWA = array(); $_DVWA[ 'db_server' ] = '127.0.0.1'; $_DVWA[ 'db_database' ] = 'dvwa'; # 只需要修改下面两项 $_DVWA[ 'db_user' ] = 'mysql'; # MySQL 数据库的用户名 $_DVWA[ 'db_password' ] = '数据库密码'; # 对应密码 $_DVWA[ 'db_port'] = '3306';
将文件保存后重命名为
config.inc.php
。 -
在浏览器中输入
192.168.10.92/DVWA-master/setup.php
,进入数据库初始化界面,点击页面最下面的Create/Reset Database
按钮完成数据库初始化工作。dvwa 数据库中会新建guestbook
和users
两个表。 -
在浏览器中输入
192.168.10.92/DVWA-master/login.php
进入 DVWA 登录界面,默认的用户名和密码分别是admin
和password
,然后就可以进入 DVWA 首页。 -
参考教程:phpstudy和dvwa的安装部署
1.2. 安装 BurpSuite 工具
网上的安装教程已经很详细了,这里有几点需要注意的地方:
- Java 环境一定要配置正确,最好在配置成功之后通过命令验证一下,否者会影响后续安装过程。
- 安装文件不能放在中文路径下,否则不能正确运行。
- 破解完成之后每次需要通过
运行薄荷.vbs
脚本文件来启动,如果通过 BurpSuite 主程序来启动,会导致破解失败。
参考教程:Burpsuite超详细安装教程
1.3. 设置 BurpSuite 代理
这里需要在 Running 下面的小方框上勾选。这里一开始运行的时候发现无法勾选。通过查资料发现是由于开启了 phpstudy,运行中的 tomcat 服务器会与 BurpSuite 相冲突。关闭 phpstudy 之后,burp 的代理就可以勾选开启了。
1.4. 设置浏览器代理
这里我使用的是火狐浏览器,代理设置如下:
1.5. 设置 DVWA 安全级别
这里将安全级别设置为 low
。
2. SQL注入实验
进入 SQL Injection (Blind)
页面,进行实验操作。
-
判断是否存在注入,注入是字符型还是数字型。
-
输入
1
,查询成功。
-
输入
1' and '1'='1
,成功。
-
输入
1' and '1'='2
,失败。
-
输入
1' or '1'='1#
,查询成功,证明存在字符型SQL注入。
-
-
猜解当前数据库名称长度
-
进入 Burp Proxy 选项卡,关闭代理连接功能。
-
在 DVWA 网页输入
1' and length(database())=*--+-
。 -
进入 Burp Proxy 的 History 子选项卡,找到最下面的请求日志,通过右击菜单,发送到 Intruder。
-
在 Intruder 的 Positions 子选项卡中,可以看到上一步发送过来的请求消息。第一行 GET 后面的内容就是请求信息。会发现有的字符被解码了,我们可以利用 Decoder 选项进行编码处理,将转换后的请求替换原来的请求,这样看着更加直观一些。替换后的请求如下:
-
将 Payload 设置为 1-10,如下图所示。如果设置后运行报错提示数字非法,这时候在 Number Format 切换一下进制,先点击 Hex,然后再切换成 Decimal 就可以了。
-
测试结果如下,可以看出数据库名称长度为4。
-
-
测试数据库名
-
测试第一个字符,输入
1' and ascii(substr(database(),1,1))>97 #
。 -
Intruder 的 Positions 子选项卡中显示如下:
-
Payload 设置为
97-127
。
-
测试结果如下图所示。可以看到,在99时状态为200,到100时状态变成404,说明第一个字符大于99且不大于100,那么只能是100,对应的字符为
d
。同理可以得后三个字符分别是v
、w
、a
。即数据库名称为dvwa
。
-
-
确定表名
-
输入
1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>97 #
。 -
Intruder 的 Positions 子选项卡中显示如下:
-
Payload 设置为
97-127
。 -
测试结果如下图所示。容易推知数据库中第一个表表名中的第一个字符为
g
,重复上述操作,可以得到第一个表的表名为guestbook
。然后进行第二表的测试,可以得到表名为users
。
-
-
确定表中字段的长度
-
输入
1' and length(substr((select column_name from information_schema.columns where table_name='users' limit 0,1),1))=1 #
。 -
Payload 设置为
1-20
。 -
测试结果如下。即users 表中第2个字段的长度为10。
-
-
确定用户名
-
输入
1' and (select user_id from users where first_name='aaa')#
-
Payload设置。从网上随机找到20个用户名进行测试,用户名和 Payload 设置如下:
-
测试结果如下图所示。可以得到 admin,bob,gordon 三个用户名信息。
-
以上是关于作业1:Burp Suite 环境配置及 SQL 注入实验的主要内容,如果未能解决你的问题,请参考以下文章