漏洞演示系统 DVWA(Damn Vulnerable Web Application) V1.8 攻略 测试环境: 操作系统:Windows 8.1 、Windows 7 运行时:.Net Framework 3.5 PHP+MySQL 集成测试环境:XAMPP V3.2.1 首先,从http://www.dvwa.co.uk/ 下载 DVWA,并将文件释放到 c:\xampp\htdocs\DVWA 修改配置文件 config\config.inc.php ,设置数据库连接账号及默认的安全级别: $_DVWA[ 'db_server' ] = 'localhost'; $_DVWA[ 'db_database' ] = 'dvwa'; $_DVWA[ 'db_user' ] = 'root'; $_DVWA[ 'db_password' ] = 123456; $_DVWA['default_security_level'] = “low“; 然后,访问 http://127.0.0.1/DVWA/login.php 第一关,就是考虑如何登录进去 这里,我们计划采取挂字典进行暴力登录尝试,这类工具称之为 Bruter,下面以 WebCruiser Web Vulnerability Scanner V2.8.0 ( )为例。
首先,随便输入一个错误的用户名和密码,这里输入 123 和 456: 提交后,切换到 Resend(重放)界面: 最新的请求在最上面,点击它,可以在右边看到详细信息点击“Bruter”按钮: 软件自动切换到 Bruter 界面, 并且自动发现 username 和 password 字段 (如果使用了特殊的 参数名,则手工从下拉列表中选中它) Bruter 提供了两种字典方式,一种是用户名和密码 使用不同的字典,另一种是使用网络已泄漏的(用户名:密码)组合点击”Go”按钮,启动 猜解: 可以看到,可以登录的用户名和密码为 admin/password 切换到 WebBrowser 界面,输入猜解出来的用户名和密码,即可登录成功 登录之后,切换到 DVWA Security 设置页,检查一下安全级别是否为低(low) ,如果不是, 修改为 low,这样 DVWA 系统就是含有漏洞的版本了 开始 DVWA 登录后的测试工作了: 登录之后,里面还有一个 Brute Force 的测试项,继续采用刚才的方式,随便输入用户名和 密码提交,并在 Resend 界面找到该请求: 继续点击“Bruter”按钮: 这是一个 GET 方式请求的暴力猜解,同样,点击“Go”发起猜解尝试: 原来,这个测试项也使用了 admin/password 这组账号。
接下来,是命令注入测试: 由于是在 Windows 平台下搭建的环境,所以串联一个 Windows 命令 dir 试试: CSRF 测试,不用使用工具,直接在不输入原口令的情况下修改口令: 接下来,重点关注一下 SQL 注入和跨站攻击脚本: 切换到 SQL Injection,然后点击 WebCruiser 的右上角“Scan URL” ,结果: 发现一个 SQL 注入漏洞在漏洞项上面单击右键,选择“SQL INJECTION POC”即可发起 SQL 注入利用工具: 这里,拿到了 root 用户在数据库中存储的口令密文 继续 SQL Injection Blind 测试,切换到 Web Browser,点开 SQL Injection (Blind), “Scan URL”: 继续 XSS Reflected,”Scan URL”: 发现一个跨站漏洞: 继续存储型跨站测试, “Scan URL” : 至此, DVWA 中可以使用工具进行自动化测试的条目测试完毕, 其它测试条目手工测试即可。