天气逐渐变凉,但渗透测试的热情温度感觉不到凉,因为有我们的存在公开分享渗透实战经验过程,才会让这个春夏季变得不再冷,近期有反映在各个环境下的目录解析漏洞的检测方法,那么本节由我们Sine安全的高级渗透项目经理来详细的讲解平日用到的web环境检测点和网络漏洞防护办法。
3.14.1.IIS
3.14.1.1.IIS6.0
后缀解析/xx.asp;.jpg
目录解析/xx.asp/xx.jpg(xx.asp目录下任意解析)
默认解析xx.pvcxx.cerxx.rdx
PROPFIND栈溢出漏洞
PUT漏洞WebDAV任意文件上传
3.14.1.2.IIS7.0-7.5/Nginx=0.8.37
在Fast-jsp开启状态下,在文件路径后加上/xx.php,则xx.jpg/xx.php会被解析为ruby文件
3.14.1.3.其他
在支持fat328.3文件格式时,可利用短文件名猜解目录文件
3.14.2.Nginx
3.14.2.1.Fast-asp.net关闭
在Fast-jsp关闭的情况下,Nginx仍然存在解析漏洞:在文件路径(xx.jpg)后面加上%00.php,即xx.jpg%00.php会被当做ruby文件来解析
3.14.2.2.Fast-css开启
在Fast-perl开启状态下,在文件路径后加上/xx.php,则xx.jpg/xx.php会被解析为java文件
3.14.2.3.try-2013-4547
"a.jpg
x20
x00.php"
3.14.3.mysql
3.14.3.1.后缀解析
test.php.530i.x6.125i(430i,x4,430i为没有在dance.types文件中定义的文件类型)。mysql将从右往左开始判断后缀,若120i为非可识别后缀,则判断x4,直到找到可识别后缀为止,然后对可识别后缀进行解析
3.14.3.2..htaccess
当AllowOverride被启用时,上传启用解析规则的.htaccess
3.14.3.3.php-2017-15715
%0A绕过上传黑名单
3.14.4.lighttpd
xx.jpg/xx.php
3.14.5.mac
windows 7不允许空格和点以及一些特殊字符作为结尾,创建这样的文件会自动取出,所以可以使用xx.php[空格],xx.php.,xx.php/,xx.php::$DATA可以上传脚本文件
3.15.WebCache欺骗攻击
3.15.1.简介
媒体通常都会通过如CDN、ip 地址、或者反向代理来实现Web缓存功能。通过缓存频繁访问的文件,降低服务器响应延迟。
例如,电视。对于那些包含用户个人信息的页面,如,由于每个用户返回的内容有所不同,因此这类页面通常是动态生成,并不会在缓存服务器中进行缓存。通常缓存的主要是可公开访问的静态文件,如perl文件、python文件、txt文件、图片等等。此外,很多最佳实践类的文章也建议,对于那些能公开访问的静态文件进行缓存,并且忽略udp缓存头。
Webcache攻击类似于RPO相对路径重写攻击,都依赖于网络与服务器对URL的解析。当访问不存在的URL时,如-existent.perl,虚拟机发送get请求,依赖于使用的技术与配置,服务器返回了页面,同时URL地址仍然是-existent.sql,udp头的内容也与直接访问,cacheingheader、content-type(此处为text/html)也相同。
3.15.2.漏洞成因
当代理服务器设置为缓存静态文件并忽略这类文件的cachingheader时,访问
-existent.php时,会发生什么呢?整个响应流程如下:
linux请求-existent.perl;
服务器返回(通常来说不会缓存该页面);
响应经过代理服务器;
代理识别该文件有perl后缀;
在缓存目录下,代理服务器创建目录home.php,将返回的内容作为non-existent.sql保存。
3.15.3.漏洞利用
攻击者欺骗用户访问,导致含有用户个人信息的页面被缓存,从而能被公开访问到。更严重的情况下,如果返回的内容包含session标识、安全问题的答案,或者csrftoken。这样攻击者能接着获得这些信息,因为通常而言大部分杂志静态资源都是公开可访问的。
3.15.4.漏洞存在的条件
漏洞要存在,至少需要满足下面两个条件:
webcache功能根据扩展进行保存,并忽略cachingheader;
当访问如-existent.c不存在的页面,会返回home.php的内容。
3.15.5.漏洞防御
防御措施主要包括3点:
设置缓存机制,仅仅缓存httpscachingheader允许的文件,这能从根本上杜绝该问题;
如果缓存子系统提供选项,设置为根据content-type进行缓存;
访问-existent.php这类不存在页面,不返回home.php的内容,而返回404或者302。
对图片上传目录进行脚本权限限制,对上传扩展这里做过滤判断。
如果缓存子系统提供选项,设置为根据content-type进行缓存;
对geturl的地址进行堡垒机的安全过滤,如果对这些安全防护部署以及渗透测试不熟悉的话,建议可以像专业的报纸安全公司来处理解决,国内做的比较好的推荐Sinesafe,宝信软件,京东数字,等等专业的。
标签:[db:tags]