漏洞演示系统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 (http://sec4app.com )为例。
首先,随便输入一个错误的用户名和密码,这里输入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中可以使用工具进行自动化测试的条目测试完毕,其它测试条目手工测试即可。