网络攻防实战研究:MySQL数据库安全
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

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服务器。

图1-20 修改php.ini参数

(4)修改DVWA数据库配置文件

将C:\phpstudy\WWW\dvwa\config\下的config.inc.php.dist文件重命名为“config.inc.php”,修改其中的数据库配置为实际的值。在本例中,MySQL数据库的root账户的密码为root,因此修改值如下。

3.安装数据库并进行测试

输入“cmd”和“ipconfig”命令,获取本机IP地址。可以使用本例中的地址http://192.168.157.130/dvwa/setup.php安装DVWA,也可以使用localhost/dvwa/setup.php安装DVWA。如图1-21所示,根据提示信息完成安装。

图1-21 安装DVWA

安装后,系统会自动跳转到登录页面http://192.168.157.130/dvwa/login.php,默认登录账号/密码为admin/password。登录后,需要设置“DVWA Security”安全级别,然后进行漏洞测试。如图1-22所示,选择对应级别后提交即可。

图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,下载命令如下。

(3)搭建平台

停止Apache 2的工作,命令如下。

赋予dvwa文件夹相应的权限,命令如下。

开启MySQL服务,命令如下。

如图1-23所示,创建DVWA数据库。

图1-23 在Kali中创建DVWA数据库

配置php-gd支持,命令如下。

修改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文件的权限设置为可读、可写、可执行。

生成配置文件config.inc.php,命令如下。

将第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平台了。

图1-24 修改数据库配置文件

图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的安装包,命令如下。

或者

将下载的压缩包解压并改名为“dvwa”,然后将其复制到/var/www/html文件夹下。

(2)重新配置和安装php-gd

配置php-gd,命令如下。

查看PHP的版本,命令如下。

执行以上命令,显示结果如下。

下载DVWA,并将其复制到网站目录下,命令如下。

修改/etc/php/7.0/apache2/php.ini文件,使allow_url_include=On(初始设置为allow_url_include=Off)。

赋予dvwa文件夹相应的权限,然后在终端中输入如下命令。

登录数据库,执行如下命令。

修改数据库密码,命令如下。

修改config.inc.php中的数据库配置为实际配置即可。

启动Apache 2和MySQL服务,命令如下。

通过浏览器访问DVWA网站并进行相应的设置。