查看原文
其他

网络安全编程:DVWA靶场简介

文章来源:计算机与网络安全

在近些年网络安全的高速发展中,初学者已经很难找到一个网站进行渗透了,曾几何时,一个漏洞,一个工具就可以在网上找到很多有漏洞的网站去体验,当然渗透一个未经授权的系统是非法的。因此,为了能够较为真实地学习Web渗透的各种技术,就需要找一个专门用于学习的Web演练平台,人们将这种用于练习渗透的平台称为“靶场”。


本文介绍如何搭建由PHP+MySQL编写开发的一套靶场系统DVWA。DVWA可以进行SQL注入、XSS、CSRF、文件上传等漏洞的演练,由于该系统提供了多个安全演练级别,因此可以逐步地来提高Web渗透的技术。DVWA是一套开源的系统,在练习Web渗透技术的同时,也可以通过阅读源码学习到对于各种漏洞的安全防护编码。


DVWA是由PHP和MySQL开发的,因此首先需要在系统中搭建一个支持PHP的Web服务器。网上有很多支持PHP和MySQL的Web服务器集成环境,比如Wamp、phpStudy等,这里推荐使用phpStudy,该软件支持多个Apache、MySQL、PHP的版本,切换也非常方便。phpStudy直接下载安装即可使用。下载安装启动后如图1所示。

图1  phpStudy界面
图1中“phpStudy启停”处的“启动”和“停止”用于控制Apache和MySQL的启动和停止,只要单击“启动”就可以方便地使用支持PHP和MySQL的Web服务器了。
在DVWA的官网下载DVWA系统,DVWA是一个压缩包文件,下载后直接解压到对应的Web站点目录下,然后就可以安装该系统了。这里使用的是phpStudy的Web服务器,那么下载后解压的位置就在“phpStudy\WWW”目录下。
在DVWA的解压目录下的config目录下找到“config.inc.php”的PHP文件,然后修改相对应的配置,需要修改的配置内容如下:
# Database variables# WARNING: The database specified under db_database WILL BE ENTIRELY DELETED during setup.# Please use a database dedicated to DVWA.$_DVWA = array();$_DVWA[ 'db_server' ] = '127.0.0.1';$_DVWA[ 'db_database' ] = 'dvwa';$_DVWA[ 'db_user' ] = 'root';$_DVWA[ 'db_password' ] = 'root';# ReCAPTCHA settings# Used for the 'Insecure CAPTCHA' module# You'll need to generate your own keys at: https://www.google.com/recaptcha/admin/create$_DVWA[ 'recaptcha_public_key' ] = '6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg';$_DVWA[ 'recaptcha_private_key' ] = '6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ';
在配置中$_DVWA['db_user']是MySQL数据库的用户,$_DVWA['db_password']是MySQL数据库的密码,$_DVWA['db_database']是DVWA在MySQL数据库中的库名。$_DVWA ['recaptcha_public_key']和$_DVWA['recaptcha_private_key']这两个即可,这个配置是在使用“Insecure CAPTCHA”模块时会使用到。
除了修改DVWA系统的配置文件以外,还需要修改PHP的配置文件,在PHP安装目录下找到php.ini的配置文件,搜索“allow_url_include”参数,找到该配置选项,将该配置选项开启,具体如下:
; Whether to allow include/require to open URLs (like http:// or ftp://) as files.; http://php.net/allow-url-includeallow_url_include = On
该配置项是保证使用“File Inclusion”模块时可以正常使用。
修改完上述配置后,在浏览器中输入http://localhost/dvwa/setup.php即可打开“Setup DVWA”页面,到这里就可以开始安装系统了。在该页面中的最下方,有一个“Create/Reset Database”按钮,单击该按钮后会创建数据库,并自动跳转到DVWA系统的登录页面,在登录页面中输入“admin”和“password”,即可登录DVWA系统,登录系统后就可以看到DVWA系统提供的Web安全可以演练的内容,如图2所示。图2  DVWA学习模块
在图2中是DVWA的所有可以练习的模块,包括“暴力破解”(Brute Force)、“命令注入”(Command Injection)、“跨站伪造请求”(CSRF)、“文件包含”(File Inclusion)、“文件上传”(File Upload)、“不安全的验证”(Insecure CAPTCHA)、“SQL注入”(SQL Injection和SQL Injection Blind)以及“跨站脚本”(XSS Reflected和XSS Stored)。
在DVWA系统中的CSFR、SQL Injection、XSS等渗透测试模块,每个模块都有4个安全级别,如图3所示。图3  DVWA模块安全级别
在DVWA系统中还有WAF(Web Application Firewall)的功能,在DVWA中称为PHPIDS,即PHP入侵检测系统,如图4所示。图4  DVWA的PHPIDS模块
在PHPIDS这里有3个连接可以单击,分别是“[Enable PHPIDS]”(开启PHPIDS)、“[Simulate attack]”(模拟攻击)和“[View IDS log]”(查看IDS日志)。查看当前PHPIDS的状态是屏蔽的,先来单击“[Simulate attack]”,查看浏览器的地址栏,如图5所示。图5  开启PHPIDS前的Simulate attack地址栏
在图5的浏览器地址栏可以看到在该页面的连接后增加了一些攻击或危险的参数。现在单击“[Enable PHPIDS]”,然后再次单击“[Simulate attack]”,如图6所示。图6  开启PHPIDS后的Simulate attack地址栏
从图6可以看出,开启PHPIDS后,对于地址栏中提交的攻击参数会被拦截,并记录到日志当中。返回上一个页面中单击“[View IDS log]”,将会显示出所有的日志记录,如图7所示。图7  PHPIDS日志
参考文献:C++ 黑客编程揭秘与防范(第3版)




版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。祝愿每一位读者生活愉快!谢谢!


推荐阅读




*干货 |GitHUB安全搬运工 九

*2021 | 网络安全你必须知道的100个小知识

*网络安全编程:目录监控工具

                                                                                         

                                                                        


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存