一、DVWA简介
一、DVWA简介
DVWA部署完成后通过默认账号密码(admin/password)进入欢迎界面(Home页面),欢迎页面对DVWA平台做了简单的介绍,如果需要对DVWA平台有一个更加深入的了解,可以在Instruction >> PDF Guide >> Official Documentation PDF v1.3 中查阅DVWA的相关信息。
下面对《Damn Vulnerable Web Application (DVWA) Official Documentation》的重点内容做一些介绍:
【声明】
DVWA全称为Damn Vulnerable Web Application,意为存在糟糕漏洞的web应用。它是一个基于PHP/MySQL开发的存在糟糕漏洞的web应用,旨在为专业的安全人员提供一个合法的环境,来测试他们的工具和技能。帮助web开发人员理解web应用保护的过程,还可以在课堂中为师生的安全性教学提供便利。
DVWA是一个RandomStorm开源项目,了解更多关于RandomStorm开源项目可以访问http://www.randomstorm.com.
DVWA项目开始于2008年12月,并逐渐受到欢迎。 现在,全世界有成千上万的安全专业人员,学生和教师正在使用它。 DVWA现在已包含在流行的渗透测试Linux发行版中,例如Samurai的Web测试框架等。
【许可】
DVWA是一个免费软件,在遵守自由软件基金会发布的GNU通用公共许可的前提下,你可以重新发布它和/或修改它。许可可以是版本3,或(由您选择)任何更高的版本。
DVWA的发行是希望它能够有用,但没有提供担保,甚至没有对适销性和特殊用途适用性做暗示性的担保,更多详细信息可参见GNU通用公共许可证。
【警告】
你应该已经得到了DVWA和GNU通用公共许可的副本,如果没有可以访问 http://www.gnu.org/licenses/。DVWA的漏洞非常危险,请勿将其上传到托管服务提供商的公共html文件夹或任何正在运行的Web服务器,DVWA的漏洞将对此造成很大的威胁。我们建议将XAMPP下载并安装到局域网内部的本地计算机上,并确保该计算机仅用于测试。
我们不对任何人使用DVWA的行为承担责任,我们已经明确了该应用程序的用途,不应将DVWA用于恶意用途。我们已发出警告并采取了措施,以防止用户将DVWA安装到活动的Web服务器上。如果您的Web服务器因安装DVWA而受到破坏,应由上传者和安装者承担责任,我们对此不承担任何责任。
【安装】
DVWA是一个web应用,使用PHP语言开发,后端使用MySQL数据库。DVWA的运行需要安装一个web服务器,PHP开发环境,MySQL数据库。如果你现在没有配置好的web服务器,最简单的方法就是下载并安装XAMPP。
使用XAMPP可以很简单的将Apache发行版安装到Linux,Solaris,Windows和Mac OS X。这个安装包里包含Apache web服务器,MySQL,PHP,Perl,FTP服务和phpMyAdmin。
XAMPP可以通过以下链接下载:
XAMPP Installers and Downloads for Apache Friends
DVWA默认用户名 : admin
DVWA默认密码: password
【Windows】
下载安装完XAMPP后,将DVWA解压到Apache htdoc文件夹下(如果安装PHPstudy,DVWA解压到www文件夹下)。通常在‘C:\XAMPP\htdoc’路径下。此时通过http://127.0.0.1/dvwa即可访问DVWA。
【Linux】
下载安装完XAMPP后,将DVWA解压到Apache htdoc文件夹下(如果安装PHPstudy,DVWA解压到www文件夹下)。通常在‘C:\XAMPP\htdoc’路径下。使用‘sudo /opt/lampp/lamp start’命令开启Apache服务。此时通过http://127.0.0.1/dvwa即可访问DVWA。
【漏洞】
DVWA顾名思义,存在很多常见类型的web应用漏洞。DVWA整合了OWASP在2010年报告中提到的前10的web风险。http://owasptop10.googlecode.com/files/OWASP Top 10 - 2010.pdf (OWASP:开放web应用安全项目。)
2010年OWASP报告中排名前10的web风险:
A1:注入
A2:跨站脚本
A3:无效的验证和会话管理
A4:不安全的直接对象引用
A5:安全配置错误
A6:伪造跨站请求
A7:不安全的加密存储
A8:无效的URL访问控制
A9:传输层保护不足
A10:未经验证的重定向和转发
DVWA中包含的web漏洞:
暴力破解:HTTP表单暴力破解登录页面;用来测试密码暴力破解工具,展示弱口令的不安全性。
命令执行:在底层操作系统上执行命令。
伪造跨站请求:启动一个“攻击者”更改应用的管理员密码。
文件包含:允许“攻击者”将远程/本地文件包含到web应用程序中。
SQL注入:启动一个“攻击者”将SQL语句注入到HTTP表单的输入框中,DVWA包括基于盲注和错误的SQL注入。
不安全文件上传:允许“攻击者”将恶意文件上传到web服务器。
跨站脚本(XSS):“攻击者”可以将自己编写的脚本注入到web应用和数据库中,DVWA包含反射型和存储型。
复活节彩蛋:全路径暴露,认证验证绕过等(去把塔门找出来吧!)。
漏洞的位置:
低级安全
1.暴力破解/弱口令
http://127.0.0.1/dvwa/login.php
http://127.0.0.1/dvwa/vulnerabilities/brute/
2.命令执行
http://127.0.0.1/dvwa/vulnerabilities/exec/
3.伪造跨站请求(CSRF)
http://127.0.0.1/dvwa/vulnerabilities/csrf/ File Inclusion
http://127.0.0.1/dvwa/vulnerabilities/fi/?page=include.php
4.SQL注入
http://127.0.0.1/dvwa/vulnerabilities/sqli/
http://127.0.0.1/dvwa/vulnerabilities/brute/
5.不安全文件上传
http://127.0.0.1/dvwa/vulnerabilities/upload/
6.反射型跨站脚本
http://127.0.0.1/dvwa/vulnerabilities/xss_r/
7.存储型跨站脚本
http://127.0.0.1/dvwa/vulnerabilities/xss_s/
8.全路径暴露
设置PHPSESSID为null(空会话cookie)。
http://www.owasp.org/ index.php/Full_Path_Disclosure
9.身份认证绕过
如果管理员更改了默认密码,并且“攻击者”知道默认密码。这个“攻击者”可以访问http://127.0.0.1/dvwa/setup.php重置数据库,包括默认密码。
DVWA安全
DVWA既有漏洞又有一些其他特性来帮助web应用安全的教学和学习,DVWA的安全特性分为两个部分:一是漏洞的安全级别;二是PHP-IDS入侵检测。
漏洞的安全等级分为低级、中级和高级。每个级别都会改变 DVWA中所有漏洞的利用难度,初始加载时默认所有漏洞安全等级为高级,以下是每个安全级别及其用途的说明。
高级 - 此级别旨在为用户提供良好编码实践的示例。这个级别应该保护所有漏洞的安全,它用于将易受攻击的源代码与安全源代码进行比较。
中级 - 此级别主要是为用户提供糟糕的编程实践示例。开发者对程序的安全性进行了一定的保护但是仍有可被利用的漏洞,这为改进用户漏洞利用技巧提供了挑战。
低级 - 此级别是完全易受攻击的,并且没有做任何安全防护。它的作用是展示不良编程实践是如何导致 Web 应用程序漏洞的,并用作教授或学习漏洞基本利用技术的平台。
DVWA 中的每个漏洞页面都有一个【查看源代码】按钮,该按钮用于查看和比较每个漏洞的源代码的安全级别。 这使用户可以轻松访问源代码,以比较安全和不安全的编码实践。
PHP-IDS是一个流行的PHP入侵检测系统(IDS),同时也是一个常见的web应用防火墙(WAF)。PHP-IDS的工作原理是使用包含潜在地恶意代码的黑名单来过滤所有用户的输入。PHP-IDS在DVWA中被用作生动的例子来展示WAF如何提高web应用的安全性,某些时候也被用来展示WAF如何被绕过。PHP-IDS功能可以通过点击相应按钮来开启或关闭。DVWA 已获得 PHP-IDS 所有者Mario Heiderich 的明确书面许可,只要许可保持不变,即可在 DVWA 中包含和分发它。有关 PHP-IDS 的更多信息,请访问:http://www.php-ids.org
用户安全
DVWA中的web应用漏洞不是模拟的而是在DVWA系统中真实存在的漏洞,因此需要特别注意DVWA安装的位置。 DVWA采取积极主动的方法,尽可能保护其用户 。在应用程序下载时和应用程序自身发出粗体警告来提醒用户,同时DVWA仅支持本地访问,不支持远程访问,这是通过在.htaccess文件中设置某些规则来实现的。
警告消息指出DVWA不应安装在实时web服务器或生产机器上。相反,它应该安装在仅用于测试目的的机器上的局域网内。DVWA在任何时候都不应上传到面向互联网的网络服务器。
DVWA还包含一个robots.txt文件,如果应用程序被上传到面向互联网的网络服务器,该文件将确保应用程序不会被搜索引擎索引。
在每个包含漏洞的页面上,都有指向资源的外部链接,其中包含有此漏洞的更多信息。单击外部链接时,远程服务器可以收集到用户的信息,如“Referer”HTTP标头。此信息包含应用程序安装位置的URL,服务器管理员可能会查看此信息并危害安装DVWA的服务器。出于这个原因,所有DVWAs的外部链接都通过一个可信的第三方代理传递,该代理清除HTTP标头中的任何敏感信息。
用户安全对于DVWA项目来说是最重要的。如果用户没有禁用这些安全特性中的任何一个,并遵循给出的建议,则安装和使用DVWA不会损害其机器的安全性。
用法
(编者注:用法部分给出了一些在DVWA中进行漏洞利用练习的步骤,本部分将不再翻译,因为我会在接下来的文章中记录DVWA所有漏洞的利用方法。)
问答
问:SQL注入漏洞在PHP5.2.6版本上不能实现。
答:如果你在用PHP5.2.6版本,需要进行如下的操作以使SQL注入漏洞和其他漏洞生效。
在.htaccess文件中找到如下代码段
<IfModule mod_php5.c>
php_flag magic_quotes_gpc off
#php_flag allow_url_fopen on
#php_flag allow_url_include on
</IfModule>
替换成
<IfModule mod_php5.c>
magic_quotes_gpc = Off
allow_url_fopen = On
allow_url_include = On
</IfModule>
问:在命令执行漏洞中提交的命令不能执行。
答:Apache可能没有足够的权限执行提交的命令,如果您在Linux下运行DVWA请确保使用的是root用户,如果在Windows下运行请确保使用的是Administrator用户。
问:我的XSS在某个浏览器上不生效。
答:现在许多的浏览器有XSS防护机制,默认是打开的,如果你的浏览器有XSS防护机制请关闭它。
更多信息
论坛: http://www.dvwa.co.uk/forum
SVN: http://dvwa.svn.sourceforge.net/svnroot/dvwa