![网络攻防实战研究:MySQL数据库安全](https://wfqqreader-1252317822.image.myqcloud.com/cover/600/34171600/b_34171600.jpg)
1.2 搭建DVWA渗透测试平台
在进行MySQL安全研究时,可以选择一些漏洞测试平台进行演练,笔者推荐DVWA和sqli-labs(见链接1-1)。
DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用程序,旨在为安全人员测试自己的专业技能和工具提供合法的环境,帮助Web开发者更好地理解Web应用安全防范的过程,提供安全的Web应用程序学习环境。DVWA的官方网站见链接1-2,代码下载地址见链接1-3。
DVWA共有十个模块,具体如下。
· Brute Force:暴力破解。
· Command Injection:命令行注入。
· CSRF:跨站请求伪造。
· File Inclusion:文件包含。
· File Upload:文件上传。
· Insecure CAPTCHA:不安全的验证码,需要Google支持。
· SQL Injection:SQL注入。
· SQL Injection(Blind):SQL盲注。
· XSS(Reflected):反射型跨站脚本。
· XSS(Stored):存储型跨站脚本。
需要注意的是,DVWA 1.9的代码分为Low、Medium、High和Impossible四种安全级别,初学者可以通过比较四种级别的代码,了解一些与PHP代码审计有关的内容。本书着重推荐DVWA,下面分别对在Windows和Kali上安装DVWA进行介绍。
1.2.1 在Windows上搭建DVWA渗透测试平台
1.准备工作
(1)下载DVWA
见链接1-4。
(2)下载phpStudy
见链接1-5、链接1-6。
可以下载phpStudy 2016版本,也可以下载phpStudy 2017及以上版本。phpStudy 2017及以上版本可以在Windows 10中使用。
2.安装软件
(1)安装phpStudy
按照软件提示信息即可安装phpStudy。既可以按照默认的方式安装,也可以自定义安装。
(2)解压和复制
将解压的DVWA文件复制到安装phpStudy时指定的www文件夹下。
(3)设置php.ini参数
运行phpStudy,根据操作系统平台选择相应的架构。例如,本例使用的是Windows服务器操作系统,则选择Apache+PHP 5.45。单击“运行模式”→“切换版本”选项,就可以选择架构了。然后,选择对应的PHP版本所在的目录,如图1-20所示,找到php.ini文件,将参数由“allow_url_include=Off”修改为“allow_url_include=On”,以便对本地文件包含漏洞进行测试。保存修改,重启Apache服务器。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_29_1.jpg?sign=1739350202-5BFpXOjVYgNbnBZKz2Cd0WaQMhOF3Al6-0-d01dc43231a07791c2a8ae869dc34a6e)
图1-20 修改php.ini参数
(4)修改DVWA数据库配置文件
将C:\phpstudy\WWW\dvwa\config\下的config.inc.php.dist文件重命名为“config.inc.php”,修改其中的数据库配置为实际的值。在本例中,MySQL数据库的root账户的密码为root,因此修改值如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_29_2.jpg?sign=1739350202-STrcqXC1YBvBbIRnobur8NTOEAJk2xPs-0-5aad1f2d6bcc2aa54d82e1e8048df03a)
3.安装数据库并进行测试
输入“cmd”和“ipconfig”命令,获取本机IP地址。可以使用本例中的地址http://192.168.157.130/dvwa/setup.php安装DVWA,也可以使用localhost/dvwa/setup.php安装DVWA。如图1-21所示,根据提示信息完成安装。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_29_3.jpg?sign=1739350202-ioT0dOYZZxiiO0zfd4VmOniAft6PZjsS-0-eb89346c8539535752864c4184165593)
图1-21 安装DVWA
安装后,系统会自动跳转到登录页面http://192.168.157.130/dvwa/login.php,默认登录账号/密码为admin/password。登录后,需要设置“DVWA Security”安全级别,然后进行漏洞测试。如图1-22所示,选择对应级别后提交即可。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_30_1.jpg?sign=1739350202-enL0CPeCH3CxT7ldEpGPe99MaF9BBzht-0-f796f731620945301bc056ac61d84518)
图1-22 选择安全级别进行测试
1.2.2 在Kali上安装DVWA渗透测试平台
1.在Kali 2016上安装DVWA渗透测试平台
在Kali 2017及以上版本上安装DVWA时会遇到一些问题:因为其默认使用PHP 7.0版本,所以与DVWA环境有些不匹配(在Kali 2016中则可以匹配)。下面介绍如何在Kali 2016上安装DVWA渗透测试平台。
(1)下载Kali Linux 2.0
如果时间比较充裕,你可以自己练习,先安装虚拟机,再安装Kali Linux 2.0。如果你已经熟练掌握虚拟机的安装,使用现成的虚拟机是一个不错的选择。Kali官方网站目前已经不提供Kali Linux 2.0的下载服务了。可以访问btdig网站搜索并下载Kali Linux,见链接1-7、链接1-8。
下载后进行解压,然后通过VMware打开该虚拟机,即可使用。
(2)下载DVWA
DVWA较新的稳定版本为1.90,下载命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_30_2.jpg?sign=1739350202-NLvz0xEwYH7pAECLfFGUihcfLx37xQbA-0-2e8871d506c7f3affc72c2069be3c565)
(3)搭建平台
停止Apache 2的工作,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_30_3.jpg?sign=1739350202-XyGNhCYRonpSHapcpVnc47jWpjY3N8MJ-0-879742c101aad5fe87565e8ca5bc8111)
赋予dvwa文件夹相应的权限,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_30_4.jpg?sign=1739350202-faIEadC9LgAj840lzFXmNbIJoFo9gSlQ-0-120d9821775100cccfc0008dbd40ae40)
开启MySQL服务,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_31_1.jpg?sign=1739350202-SH8JJTBbcrXiRmMMrkpOmhQ7js9XGhs5-0-ca09777ecace682cbf0f4e5c70c9a2a4)
如图1-23所示,创建DVWA数据库。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_31_2.jpg?sign=1739350202-n8Gutd07ryFfBCt9jpUjPMvOmXPQnDcH-0-faa152f5cd5189999d462be9a131c7da)
图1-23 在Kali中创建DVWA数据库
配置php-gd支持,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_31_3.jpg?sign=1739350202-hFQ1I8fyGW5gjYbKZcKxs4LXns0DpvAz-0-b49887a9f5e972814c7d4f5de4dded60)
修改php.ini中的参数值allow_url_include。编辑/etc/php/7.0/apache2/php.ini文件,将第812行“allow_url_include=Off”修改为“allow_url_include=On”,保存后退出。这里有一个Vim编辑技巧:按“Esc”键,输入“:”,然后输入“wq!”。
接下来,配置 DVWA。打开终端,输入如下命令,进入 dvwa 文件夹,将 uploads 文件夹和phpids_log.txt文件的权限设置为可读、可写、可执行。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_31_4.jpg?sign=1739350202-HXOhzFt03LR1ddD5QfwtdrmjaSB6ldcT-0-b8dfe314edf7b7873b4ea35715839619)
生成配置文件config.inc.php,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_31_5.jpg?sign=1739350202-aCCZNLHe6YzJC5N8ju2KqLkjyUHG6IJl-0-7d8c8f91863896b52b5a83205310774c)
将第18行中的“db_password='p@ssw0rd'”修改为实际的密码值,在本例中设置为空值,如图1-24所示。
(4)访问并创建DVWA平台
打开浏览器,在地址栏中输入“http://192.168.2.132/dvwa/setup.php”,如图1-25所示(验证码为“Missing”),单击“Create/Reset Database”按钮,完成所有配置。
配置成功后,就可以像在Windows中一样在Kali中使用使用DVWA平台了。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_32_1.jpg?sign=1739350202-5NloxXDWE2SWr5z1aKdneYvKLi3Do1xh-0-d1c1961ad5cb7f2f5820270ee15b683a)
图1-24 修改数据库配置文件
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_32_2.jpg?sign=1739350202-HjjWzInMAb8Bwk6HMjDHtxbokjAFfDLJ-0-d495e0af95bd046714de5cb72ac7f488)
图1-25 DVWA配置成功
2.在Kali 2017及以上版本上安装DVWA渗透测试平台
前面提到过,在Kali 2017及以上版本上安装DVWA时会遇到一些问题。有研究发现,在Kali 2017及以上版本上安装DVWA后出现的无法使用问题是由MySQL授权问题导致的,按照下面的方法即可解决。
(1)准备工作
下载Kali Linux的新版本。读者如果有时间,可以先安装虚拟机,再安装Kali Linux 2.x。也可以使用Kali提供的虚拟机打包文件,其下载地址见链接1-11、链接1-12。
可以根据个人计算机的实际配置和平台选择下载。下载后,在本地将文件解压,使用 VMware打开即可。
下载DVWA的新版本。访问GitHub,下载DVWA 1.90的安装包,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_32_3.jpg?sign=1739350202-emiadvkzFle5rOq4MynT5iJx1PNnJlXg-0-595570cb2d85911c1c241f6989242cc9)
或者
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_32_4.jpg?sign=1739350202-4Os9aYC9BWku3y242e7T0EFY1JXWE2TI-0-206c86db48da5ae2df79e4b43ff77685)
将下载的压缩包解压并改名为“dvwa”,然后将其复制到/var/www/html文件夹下。
(2)重新配置和安装php-gd
配置php-gd,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_33_1.jpg?sign=1739350202-CZ0uFmYY96Dfj9rfHZuz0Z38vwSL1uA8-0-5fadb5f0e2db1e711c24b8058e8382ea)
查看PHP的版本,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_33_2.jpg?sign=1739350202-D4dq8Ca0FUHTty7KH6uTkOIjZq9jp8WZ-0-0c13d160e36988f16cd1d7c79f2eefc6)
执行以上命令,显示结果如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_33_3.jpg?sign=1739350202-fpE2l0WpIGesq4meLIMpuSbScBbf9mSH-0-5432ca5320471dac4801033913dbbb87)
下载DVWA,并将其复制到网站目录下,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_33_4.jpg?sign=1739350202-847MK0ywh4FwyH8NJQNYrO89a7I66KCP-0-8af40a18c7fef35e3ee40359a0b5160a)
修改/etc/php/7.0/apache2/php.ini文件,使allow_url_include=On(初始设置为allow_url_include=Off)。
赋予dvwa文件夹相应的权限,然后在终端中输入如下命令。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_33_5.jpg?sign=1739350202-169UDEbencNGkXSTbDXFvclwyvdKhbh9-0-327be3a5bcddc5564b3e159a9f2e019b)
登录数据库,执行如下命令。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_33_6.jpg?sign=1739350202-YEYCEqXitFNMf1MD2lFZVEgRJrCNEodX-0-434c5afaef49ab8f5e98c579fb67a70b)
修改数据库密码,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_33_7.jpg?sign=1739350202-IWoMu2lrq1V9liFGdmuMz0Fzbi13rnWt-0-c9126e83f96e0fc269b332e425f468f9)
修改config.inc.php中的数据库配置为实际配置即可。
启动Apache 2和MySQL服务,命令如下。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_33_8.jpg?sign=1739350202-f3rWCEPwPnpSnw6eHP3kWJV7swhAm3JT-0-90e02c9c9faadd94996640aa60899e62)
通过浏览器访问DVWA网站并进行相应的设置。