刘木友
(广州华立科技职业学院,广东 广州 511325)
中国互联网信息中心发布的第50次《中国互联网络发展状况统计报告》指出,截至 2022 年 6 月,我国网民规模达10.51亿,较2021年12月增长1919 万[1],截至2022年6月,我国网站数量为398万个[1],说明互联网规模不断增大。在网络系统漏洞中,Web应用最易受到恶意攻击,影响也最为广泛[2]。
据专业机构测算,2020年我国网络安全从业人员需求数量为155万人,2027年为327万人。当前培养的网络安全人才数量远远不能满足需求[3],因此表明人才市场对网络空间安全技术人才的需求旺盛。
作为法定的社会秩序维护者,国家承担了主导性的网络安全保护义务[4]。2021年颁布《中华人民共和国数据安全法》《中华人民共和国个人信息保护法》,2022年9月颁布《中华人民共和国反电信网络诈骗法》等,网络安全相关法律法规在日益完善。
DVWA(Damn Vulnerable Web Application)是一个非常易受攻击的PHP/MySQL Web应用程序,其主要目的是帮助网络空间安全专业人员在合法环境下,测试他们的技能和软硬件工具,帮助教师、学生在受控的课程环境中了解和学习保护Web应用程序安全。DVWA具有Low、Medium、High、Impossible4个安全级别,程序安全级别越低,说明系统越容易被攻破。DVWA拥有Brute Force、Command Injection、CSRF、File Inclusion、File Upload、Insecure CAPTCHA、SQL Injection、SQL Injection (Blind)、XSS (Reflected)、XSS (Stored)10个练习模块,用户可以选择任意模块进行练习,也可以选择任意安全级别进行练习,但建议用户从Low安全级别开始,升级到Impossible级别。
(1)DVWA v1.9源码下载地址。
https://github.com/RandomStorm/DVWA/archi ve/master.zip
(2)软件:Windows10操作系统64位、集成开发环境WampServer3.1.3_x64、虚拟机VMware-workstation 16.2.3、谷歌浏览器Google Chrome。
(3)硬件:Intel Core i5-8300 2.30 GHz处理器,8 GB内存,500 GB硬盘。
软件安装如下,本实验分为主机和靶机,主机安装Windows10和谷歌浏览器,在主机上安装虚拟机VMware,并在其上安装Windows10作为靶机,在靶机上安装WampServer服务器。本实验中WampServer安装在靶机C:根目录下,并把DVWA-master.zip解压文件名修改为DVWA,放置在靶机C:wamp64www文件夹中。
具体操作步骤如下:
(1)在主机安装虚拟机VMware,在其中安装Windows10作为靶机,确认靶机Windows10正常运行。
在VMware安装Windows10的操作流程,请参考相关文献。虚拟机关键配置如下:内存2 GB,处理器数量2,硬盘60 GB,网络适配器NAT模式(用于共享主机的IP地址)。
(2)在靶机Windows10中安装WampServer,确认可正常运行。
在靶机中安装WampServer作为服务器,在安装WampServer之前,建议Windows10先安装“微软常用运行库合集”,它可以解决操作系统没有安装VC++运行库或者安装的版本不完整问题,否则会导致WampServer软件启动时报错,操作系统提示缺少库文件。如本实验中安装WampServer可能会提示找不到MSVCR120.dll,MSVCP120.dll系统错误。安装WampServer的操作流程,请参考相关文献。在靶机浏览器中打开网址:http://127.0.0.1/,可看到WampServer欢迎界面,说明WampServer安装成功。
WampServer安装成功后,需要为DVWA成功运行解决两个问题。
问题1:PHP版本问题。在实训环节,由于DVWA的编程是用低版本的PHP语言,而WampServer服务是高版本的PHP语言,版本不同会导致用户在使用DVWA系统时,PHP函数在执行过程显示错误。如在Medium安全级别,练习“SQL Injection”模块,会显示“ Deprecated: Function mysql_numrows() is deprecated in C:wamp64wwwDVWAvulnerabilitiessqlisourcemedium.php on line 13”。为了有更好的练习体验,提供如下解决方法,在靶机用鼠标左击桌面右下角WampServer的绿色图标,在弹出的对话框中,依次选择[PHP]-->[php.ini],在弹出的记事本文件中修改参数display_errors=On为display_errors=Off。然后,重新启动WampServer所有服务,使设置生效。
问题2:中文乱码问题。在DVWA系统进行Command Injection命令练习时,会出现中文乱码问题,解决步骤如下:①在靶机DVWA安装目录下(.../www/DVWA/dvwa/includes)寻找文件dvwaPage.inc。②用记事本软件打开此文件,然后全文替换所有编码格式“utf-8”为“gb2312”,替换成功后保存文件。注意:此文件有多个utf-8,要全部修改成gb2312。③重新启动WampServer所有服务,此后DVWA就不会出现中文乱码。
(3)确认DVWA可以在靶机WampServer中正常登录。
把解压并重命名为DVWA的源代码文件,放置在靶机C:wamp64www下,并进行如下关键配置。
用记事本软件打开DVWA/config文件夹下config.inc.php,将config.inc.php文件中的$_DVWA[ 'db_password' ] 的值修改为空,因为WampServer中MySQL数据库的默认密码为空。设置参数如下所示:
$_DVWA[ 'db_server' ]='127.0.0.1';
$_DVWA[ 'db_database' ]='dvwa' ;
$_DVWA[ 'db_user' ] ='root';
$_DVWA[ 'db_password' ]='';
在靶机浏览器中打开网址:http://127.0.0.1/dvwa/setup.php,设置数据库,只需单击主菜单中的“Setup DVWA”按钮,然后单击子页面中的“Create/Reset Database”按钮。创建数据库并导入数据库基础数据如图1所示。
在靶机谷歌浏览器地址栏中输入http://127.0.0.1/dvwa/login.php,输入默认登录用户名admin和密码password,如图2所示。
图2 登录界面
正确登录后,DVWA欢迎界面如图3所示。
至此,DVWA系统在靶机环境下可正常运行,接下来需要解决主机和靶机之间的网络通信问题。
在搭建主机和靶机实训环境时,会遇到两个问题。
问题1:主机与靶机之间的网络是否畅通。
在靶机中打开命令提示符,输入ipconfig命令,查看靶机IP地址。如本实验中靶机IP地址为:192.168.163.159,各个实训环境下的IP地址会不同,以实际IP地址为准。在主机的命令提示符界面ping靶机IP地址,如本实验中ping 192.168.163.159。如果主机与靶机之间的网络不通,显示“请示超时”“数据包丢失”等信息。解决方案:(1)检查并设置靶机虚拟机网络适配器为NAT模式。(2)主机或靶机的防火墙问题,建议关闭靶机防火墙。在靶机Windows10中“控制面板系统和安全Windows Defender 防火墙自定义设置”下,在“专用网络设置”和“公用网络设置”中都选择“关闭Windows Defender 防火墙”。
问题2:主机是否有权限访问靶机WampServer中的DVWA系统。
在主机谷歌浏览器地址栏中输入靶机地址:192.168.163.159,浏览器反馈“Forbidden You don’t have permission to access/on this server.”这是由于靶机服务器不允许外界访问所导致的问题。解决方法:步骤1,用鼠标左击靶机桌面右下角WampServer的绿色图标,在弹出的对话框中,依次选择[Apache]-->[httpd.conf],在弹出的记事本文件中修改参数Require local为Require all granted。步骤2,用鼠标左击靶机桌面右下角WampServer的绿色图标,在弹出的对话框中,依次选择[Apache]-->[httpd-vhosts.conf],在弹出的记事本文件中修改参数Require local为Require all granted。步骤3,重新启动WampServer所有服务。在主机浏览器中输入靶机地址192.168.163.159,可正常访问靶机的主页,再输入地址192.168.163.159/dvwa,可正常访问dvwa界面,如图3所示。至此,所有设置已完成。
本文以DVWA Web应用程序的实验实训环境要求出发,配置主机和靶机服务器软硬件参数以及它们之间网络通信,并分析配置过程中遇到的问题并提供解决方案。经实训室实验证明,本文配置的实训参数不仅可用于单机的主机和靶机虚拟机配置,也可用于实训室中服务器与学生PC机配置。高职计算机专业学生注重实操能力培养,相当数量的程序员在编写代码的时候,没有充分考虑对用户提交数据进行安全检查,使应用程序存在安全隐患[5]。本研究期望通过DVWA网络空间安全平台有助于提高学生编写程序代码的严谨性和技能,也有助于学生参加网络空间安全工程职称申报工作。