---------------------------------------
说明本手册作为教学的一部分供大家参考。
具体的关于web漏洞的学习大家可以参考《web***测试-常见漏洞解析课程》
http://edu.51cto.com/course/course_id-5281.html
---------------------------------------
1. 系统介绍
DVWA(dema vulnerable web application)是一个基于PHP/MYSQL环境写的一个web应用。他的主要目的是帮助安全专业员去测试他们的技术和工具在合法的环境里面也帮助开发人员更好的理解如何加固他们开发的web系统同时帮助老师或者学生去教或者学习web应用安全在教学环境里面。如果你想学习web***测试测试遇见DVWA是你的幸运。
DVWA是randomstorm的一个开源项目。如果你更多的了解randomstorm的服务和产品你可以访问他们官方网站www.randomstorm.com
DVWA项目开始与2008年的12月并且在发布后人气一直稳定增长。他现在被全球大量的安全专业人员老师和学生使用。DVWA现在被很多流行的渗基于linux发行版本的透测试系统所引用比如samuriai 和其他
1. 授权说明
这个文档是DVWA的一部分。
DVMA是一个免费的软件你可以发布或者修改他在GNU授权标准下。包括所有的版本。
2. 安全警告
DVWA是一个包含有很多漏洞的web系统所以千万不要将他放到你的工作服务器上以免其他应用受到牵连。我们建议你将他安装在你的内网的测试机器上且仅供测试使用。
3. DVWA的除初始化安装
DVWA是基于PHP/mysql环境开发的所有需要PHP/MYSQL环境来支持的运行在安装它前建议直接使用XAMPP集成软件来搭建PHP/Mysql环境。下面将介绍他在windows环境下的安装。
1.安装环境
1到http://www.xampps.com/下载xampp的windows版本安装即可。
2到http://www.dvwa.co.uk/下载dvwa的的zip压缩包。
2. dvwa的安装步骤
1将dvwa-1.9.zip文件解压并将文件名修改为dvwa,将文件拷贝到XAMPP安装目录下的\xampp\htdocs目录下。
2通过xampp的控制台启动XAMPP的apache和mysql服务。3通过浏览器访问dvwa所在主机访问的地址为http://x.x.x.x/dvwa进入dvwa的web安装界面见下图
通过该页面的“create/resetdatabase”可以直接将DVWA的数据库建立起来在创建之前请修改\xampp\htdocs\dvwa\config里面config.php里面连接mysql数据库的密码。XAMPP集成环境里面MYSQL的默认登陆密码为root/root,请根据实际情况修改。修改示例如下
修改后点击保存。
回到dvwa的setup页面点击“create/reset database”显示如下页面即表示安装成功。
此时会自动跳转到DWVA的登陆界面或者点击login打开登陆界面。默认的登陆账号信息为
Username: admin
Passwod:password
5. DVWA上的漏洞列表
DVMA正如他的名字一样是一个包含了很多漏洞的应用系统。DVWA的漏洞包括了OWASP oepen web application security project的web 10大漏洞。这里提一下Owasp top10 2010年发布的数据
The OWASP Top 10 Web ApplicationSecurity Risks for 2010 are:
A1: Injection // 注入漏洞
A2: Cross-Site Scripting (XSS) //跨站脚本
A3: Broken Authentication and Session Management //错误的授权和会话管理
A4: Insecure Direct Object References //不正确的直接对象引用
A5: Cross-Site Request Forgery (CSRF)//伪造跨站请求
A6: Security Misconfiguration//安全性错误配置
A7: Insecure Cryptographic Storage//不安全的加密存储
A8: Failure to Restrict URL Access//未验证的重定向和传递
A9: Insufficient Transport Layer Protection//不足的传输层防护
A10: Unvalidated Redirects and Forwards//无效的重定向和转发
DVWA里面具体包括如下这些漏洞:
1.暴力破解漏洞通过brute force登录页面进入到该漏洞的测试位置。这个漏洞是用来测试暴力破解工具和展示不安全的弱密码。
2.命令执行漏洞在存在风险的系统上执行命令。
3.CSRF伪造跨站请求漏洞,允许***者去修改应用的管理员密码。
4.SQL注入,DVWA包括盲注和错误型注入两种SQL注入漏洞类型。
5.不安全的文件上传漏洞,允许***者上传恶意的文件到web服务器上
6.XSS跨站脚本漏洞,允许***者注入他们自己的脚本到web服务器上。DVWA系统里面包含了反射性XSS和存储型XSS两种类型。
7.文件包含漏洞,允许进行本地文件包含执行和远程文件包含执行
8.验证码绕过(但由于验证码使用了google的,我们网络太和谐,需要代理或者×××连接,经过×××环境测试,也不太靠谱)
6. DVWA的安全级别和漏洞位置说明
在DVWA上有三种安全级别分别是
High:在这个级别下所有有漏洞的代码都被修补过了你可以通过查看源代码来查看修补过的漏洞。通过高级别漏洞代码的查看可以跟低级别的代码做一些对比从而让安全人员更加深入的理解漏洞是怎么出现的。
Medium中级别表示代码已经被开发人员尝试加固过了但是加固的不够彻底因此漏洞还是存在。这让开发人员能够跟进一步认识漏洞。同时对学习者来说因为这个漏洞加大了难度要拿下这个漏洞也是一个挑战。
Low在个级别下所有的漏洞均没有被修复过。你可以在这个级别下测试所有的漏洞。并且通过查看源代码来了解漏洞是如何发生的。
在LOW级别下你可以通过下面的指引找到对应的漏洞
BruteForce/Weak Passwords;
http://127.0.0.1/dvwa/login.php
http://127.0.0.1/dvwa/vulnerabilities/brute/
CommandExecution;
http://127.0.0.1/dvwa/vulnerabilities/exec/
CrossSite Request Forgery (CSRF);
http://127.0.0.1/dvwa/vulnerabilities/csrf/
FileInclusion;
http://127.0.0.1/dvwa/vulnerabilities/fi/?page=include.php
SQLInjection;
http://127.0.0.1/dvwa/vulnerabilities/sqli/
http://127.0.0.1/dvwa/vulnerabilities/brute/
InsecureFile Upload;
http://127.0.0.1/dvwa/vulnerabilities/upload/
ReflectedCross Site Scripting;
http://127.0.0.1/dvwa/vulnerabilities/xss_r/
StoredCross Site Scripting;
http://127.0.0.1/dvwa/vulnerabilities/xss_s/
Fullpath Disclosure;
Site wide. Set PHPSESSID to NULL. (NullSession Cookie) http://www.owasp.org/
index.php/Full_Path_Disclosure
Authenticationbypass;
If the admin changes the default password(password) and the 'attacker' knows what
the default password is. The 'attacker' mayaccess http://127.0.0.1/dvwa/setup.php
to reset the database including the defaultpassword.
Authenticationbypass;
If the admin changes the default password(password) and the 'attacker' knows what
the default password is. The 'attacker' mayaccess http://127.0.0.1/dvwa/setup.php
to reset the database including the default password.
所有的漏洞用户都可以在对应的页面点击“view source ”的按钮通过这个按钮用户可以看到对应漏洞的原代码。同时可以比较不同级别下的源代码从而让安全学习人员和开发人员能够更加进一步的认识漏洞。
PHP-IDS是一款流行的PHP***检测系统就像我们知道的WAFweb应用防火墙一样PHP-IDS可以像WAF一样保护我们的系统。在DVWA上应用了php-ids,你可以通过页面上的开关来将PHP-IDS关闭或者打开PHP-ids在开启的情况下会检查提交的恶意代码从而进行安全防护。
7. DVWA上的漏洞示例-存储型XSS
这里以反射性XSS为例来演示如何使用DVWA上的漏洞。
第一步登录DVWA
第二步将dvwa-security-里面的安全级别调到最低级别
第三步选择XSS(Reflected)页面
第四步输入测试脚本点击提交
第五步由于此处存在反射性XSS漏洞浏览器会弹出“\xss\”
第六步将安全级别依次调到medium以及high级别并分别使用相关的技巧对其进行突破
通过对漏洞的不同的级别的练习可以帮助你理解漏洞的原理以及提高***测试技巧。
具体的关于web漏洞的学习大家可以参考《web***测试-常见漏洞解析课程》
http://edu.51cto.com/course/course_id-5281.html