DVWA搭建

DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。DVWA共有十个模块,分别是:
Brute Force(暴力(破解))
Command Injection(命令行注入)
CSRF(跨站请求伪造)
File Inclusion(文件包含)
File Upload(文件上传)
Insecure CAPTCHA (不安全的验证码)
SQL Injection(SQL注入)
SQL Injection(Blind)(SQL盲注)
XSS(Reflected)(反射型跨站脚本)
XSS(Stored)(存储型跨站脚本)
需要注意的是,DVWA 1.9的代码分为四种安全级别:Low,Medium,High,Impossible。我们可以通过比较四种级别的代码,接触到一些PHP代码审计的内容。

DVWA的搭建
1.下载phpStudy
http://phpstudy.php.cn/
phpStudy是集成了Apache和MySql的集成环境,下载好安装phpStudy,
运行时若显示缺少VC运行库
32位的VC9:http://www.microsoft.com/zh-CN/download/details.aspx?id=5582
64位的VC9:http://www.microsoft.com/zh-CN/download/details.aspx?id=15336
安装好后运行127.0.0.1看是否可以出现界面
下载DVWA http://www.dvwa.co.uk/
下载后解压,放到phpStudy的WWW目录之下
2.配置一下相关文件首先将DVWA/confing下的config.inc.php.dist修改为
config.inc.php,找到其中的把原来的db_password改为root,其次是将原来的

$_DVWA[ 'recaptcha_public_key' ]  = ' ';

$_DVWA[ 'recaptcha_private_key' ] = ' ';

改为

$_DVWA[ 'recaptcha_public_key' ]  = '6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg';

$_DVWA[ 'recaptcha_private_key' ] = '6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ';
3.修改成功后访问127.0.0.1/DVWA
然后创建好了若没有问题便会自动跳转至登陆界面
账号/密码:admin/password

DVWA上的漏洞列表
DVMA正如他的名字一样是一个包含了很多漏洞的应用系统。DVWA的漏洞包括了OWASP oepen web application security project的web 10大漏洞。DVWA里面具体包括如下这些漏洞:
1.暴力破解漏洞通过brute force登录页面进入到该漏洞的测试位置。这个漏洞是用来测试暴力破解工具和展示不安全的弱密码。
2.命令执行漏洞在存在风险的系统上执行命令。
3.CSRF伪造跨站请求漏洞,允许攻击者去修改应用的管理员密码。
4.SQL注入,DVWA包括盲注和错误型注入两种SQL注入漏洞类型。
5.不安全的文件上传漏洞,允许攻击者上传恶意的文件到web服务器上
6.XSS跨站脚本漏洞,允许攻击者注入他们自己的脚本到web服务器上。DVWA系统里面包含了反射性XSS和存储型XSS两种类型。
7.文件包含漏洞,允许进行本地文件包含执行和远程文件包含执行
8.验证码绕过

文件上传
文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。
文件上传的文件载体要么在服务器端具备可执行性,要么具备影响服务器端行为的能力,其发挥作用还需要具备以下几个条件:
(1)上传的文件具备可执行性或能够影响服务器行为,所以文件所在的目录必须在WEB容器覆盖的路径之内;(必须在这个服务器之下)
(2)用户可以从Web上访问这个文件,从而使得Web容器解释执行该文件;(就是你可以访问到你上传的这个文件)
(3)上传后的文件必须经过安全检查,不会被格式化、压缩等处理改变其内容;
(文件的内容不会被修改)
绕过方案:
使用Burpsuite:
1)先将木马的扩展名改成一个正常的图片扩展名,如jpg
2)上传时使用Burpsuite拦截数据包,将木马的扩展名改为原来的php,即可绕过客户端的验证。
注意:这里修改文件名后,请求头中的Content-Length的值也要改
文件名大小写绕过
用像AsP,pHp 之类的文件名绕过黑名单检测
名单列表绕过
用黑名单里没有的名单进行攻击,比如黑名单里没有asa 或cer 之类
特殊文件名绕过
比如发送的http 包里把文件名改成test.asp. 或test.asp_(下划线为空格),这种命名方式在windows 系统里是不被允许的,所以需要在burp 之类里进行修改,然后绕过验证后,会被windows 系统自动去掉后面的点和空格,(Unix/Linux 系统没有这个特性。)

将一句话木马的文件名【evil.php】,改成【evil.php.abc】(奇怪的不被解析的后缀名都行)。首先,服务器验证文件扩展名的时候,验证的是【.abc】,只要该扩展名符合服务器端黑白名单规则,即可上传。另外,当在浏览器端访问该文件时,Apache如果解析不了【.abc】扩展名,会向前寻找可解析的扩展名,即【.php】
白名单检测绕过
白名单就是只能上传规定后缀的文件,主要利用截断上传绕过,有0x00截断与%00截断
0x00截断:
在上传的时候,当文件系统读到【0x00】时,会认为文件已经结束。利用00截断就是利用程序员在写程序时对文件的上传路径过滤不严格,产生0x00上传截断漏洞。
通过抓包截断将【evil.php.jpg】后面的一个【.】换成【0x00】。在上传的时候,当文件系统读到【0x00】时,会认为文件已经结束,从而将【evil.php.jpg】的内容写入到【evil.php】中,从而达到攻击的目的。
0x00的意思为16进制00,所以将对应的进制改成00(至于怎么找到对应代码,看右边对应代码,找到第几行,从左到右,每个字母对应一个代码),改完直接go
在/Upload/后面加一个空格,点开hex,将其对应的20改成00即可,可绕过后缀名的过滤,从而得到webshell。
%00截断:
将文件名后面直接加上%00.jpg,先绕过后缀上传,然后利用burp的urldecode功能,其实和/00截断将hex20变成00一样,效果一样,两种方法都可以拿webshell
————————————————
版权声明:本文为CSDN博主「biobby」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/biobby/article/details/81213894

猜你喜欢

转载自www.cnblogs.com/MI6plus/p/11760393.html