网站安全渗透测试中目录解析漏洞详情

天色逐步变凉,但浸透测试的激情温度觉得没有到凉,由于有咱们的存正在地下分享浸透实战经历进程,才会让这个秋冬变患上再也不冷,近期有反映正在各个环境下的目次解析破绽的检测办法,那末本节由咱们Sine平安的初级浸透架构师来具体的解说平时用到的web环境检测点以及网站破绽防护方法。

3.14.1. IIS

3.14.1.1. IIS 6.0

后缀解析 /xx.asp;.jpg

目次解析 /xx.asp/xx.jpg (xx.asp目次下恣意解析)

默许解析 xx.asa xx.cer xx.cdx

PROPFIND 栈溢露马脚

PUT破绽 WebDAV恣意文件上传

3.14.1.2. IIS 7.0-7.5 / Nginx <= 0.8.37

正在Fast-CGI开启状态下,正在文件门路后加之 /xx.php ,则 xx.jpg/xx.php 会被解析为php文件

3.14.1.3. 其余

正在支持NTFS 8.3文件格局时,可行使漫笔件名猜解目次文件

3.14.2. Nginx

3.14.2.1. Fast-CGI封闭

正在Fast-CGI封闭的状况下, Nginx 依然存正在解析破绽:正在文件门路(xx.jpg)前面加之 %00.php , 即 xx.jpg%00.php 会被当作 php 文件来解析

3.14.2.2. Fast-CGI开启

正在Fast-CGI开启状态下,正在文件门路后加之 /xx.php ,则 xx.jpg/xx.php 会被解析为php文件

3.14.2.3. CVE-2013-4547

"a.jpg\x20\x00.php"

3.14.3. Apache

3.14.3.1. 后缀解析

test.php.x1.x2.x3 ( x1,x2,x3 为不正在 mime.types 文件中界说的文件类型)。Apache 将从右往左开端判别后缀, 若x3为非可辨认后缀,则判别x2,直到找到可辨认后缀为止,而后对可辨认后缀进行解析

3.14.3.2. .htaccess

当AllowOverride被启历时,上传启用解析规定的.htaccess

3.14.3.3. CVE-2017-15715

%0A绕过上传黑名单

3.14.4. lighttpd

xx.jpg/xx.php

3.14.5. Windows

Windows没有容许空格以及点和一些非凡字符作为末端,创立这样的文件会主动掏出,以是能够应用 xx.php[空格] , xx.php., xx.php/, xx.php::$DATA 能够上传剧本文件

3.15. Web Cache诈骗攻打

3.15.1. 简介

网站通常城市经过如CDN、负载平衡器、或许反向代办署理来完成Web缓存性能。经过缓存频仍拜访的文件,升高效劳器呼应提早。

例如,网站 htttp://域名 设置装备摆设了反向代办署理。关于那些蕴含用户集体信息的页面,如 http://域名/home.php ,因为每一个用户前往的内容有所没有同,因而这种页面一般为静态天生,其实不会正在缓存效劳器中进行缓存。通常缓存的次要是可地下拜访的动态文件,如css文件、js文件、txt文件、图片等等。别的,不少最好理论类的文章也倡议,关于那些能地下拜访的动态文件进行缓存,而且疏忽HTTP缓存头。

Web cache攻打相似于RPO绝对门路重写攻打,都依赖于阅读器与效劳器对URL的解析形式。当拜访没有存正在的URL时,如 http://域名/home.php/non-existent.css ,阅读器发送get申请,依赖于应用的技巧与设置装备摆设,效劳器前往了页面 http://域名/home.php 的内容,同时URL地点依然是 http://域名/home.php/non-existent.css,http头的内容也与间接拜访 http://域名/home.php 相反,cacheing header、content-type(此处为text/html)也相反。

3.15.2. 破绽成因

今世理效劳器设置为缓存动态文件并疏忽这种文件的caching header时,拜访

http://域名/home.php/no-existent.css 时,会发作甚么呢?整个呼应流程以下:

阅读器申请 http://域名/home.php/no-existent.css ;

效劳器前往 http://域名/home.php 的内容(通常来讲没有会缓存该页面);

呼应通过代办署理效劳器;

代办署理辨认该文件有css后缀;

正在缓存目次下,代办署理效劳器创立目次 home.php ,将前往的内容作为 non-existent.css 保留。

3.15.3. 破绽行使

攻打者诈骗用户拜访 http://域名/home.php/logo.png?www.myhack58.com ,招致含有用户集体信息的页面被缓存,从而能被地下拜访到。更重大的状况下,假如前往的内容蕴含session标识、平安成绩的谜底,或许csrf token。这样攻打者能接着取得这些信息,由于通常而言年夜局部网站动态资本都是地下可拜访的。

3.15.4. 破绽存正在的前提

破绽要存正在,至多需求餍足上面两个前提:

web cache性能依据扩大进行保留,并疏忽caching header;

当拜访如 http://域名/home.php/non-existent.css 没有存正在的页面,会前往 home.php 的内容。

3.15.5. 破绽进攻

进攻措檀越要包罗3点:

设置缓存机制,仅仅缓存http caching header容许的文件,这能从基本上根绝该成绩;

假如缓存组件提供选项,设置为依据content-type进行缓存;

拜访 http://域名/home.php/non-existent.css 这种没有存正在页面,没有前往 home.php 的内容,而前往404或许302。

对图片上传目次进行剧本权限限度,对上传扩大这里做过滤判别。

假如缓存组件提供选项,设置为依据content-type进行缓存;

对get url的地点进行waf的平安过滤,假如对这些平安防护部署和浸透测试没有相熟的话,倡议能够像业余的网站平安公司来解决处理,国际做的比拟好的保举Sinesafe,启明星斗,绿盟,等等业余的。

添加回复:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。