文档章节

网站安全防护 渗透测试解析漏洞详情

 网站安全
发布于 10/21 15:13
字数 1449
阅读 10
收藏 0

天气逐渐变凉,但渗透测试的热情温度感觉不到凉,因为有我们的存在公开分享渗透实战经验过程,才会让这个秋冬变得不再冷,近期有反映在各个环境下的目录解析漏洞的检测方法,那么本节由我们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,启明星辰,绿盟,等等专业的。

© 著作权归作者所有

网站安全

粉丝 7
博文 171
码字总数 245521
作品 0
青岛
私信 提问
网络安全,一个大写的反“作死”!

近年来流氓软件、后门程序、木马等网络威胁数量暴增,电脑病毒是个令人讨厌的字眼,却作死一般的围绕在我们每一位网民身边。为了提醒后人不忘CIH病毒带来的教训,每年的4月26日,是世界电脑病...

让往事随风
2016/04/21
140
0
渗透测试基本流程(针对工作中的渗透测试)

  这里介绍的渗透测试流程主要是针对工作中的,因此仅供参考!  &wmap;渗透测试就是通过模拟恶意攻击者的技术和方法,挫败目标系统安全控制措施,取得访问控制权,并发现具备业务影响后果...

eth10
2018/01/10
0
0
如何对网站进行渗透测试服务 扫描漏洞并修复

天气越来越凉爽,在对网站代码进行渗透测试,漏洞测试的同时我们安全渗透技术要对客户的网站源代码进行全方位的安全检测与审计,只有真正的了解网站,才能更好的去渗透测试,发现网站存在的漏洞,...

网站安全
10/24
0
0
网站安全防护加固discuz漏洞修复方案

近期我们SINE安全在对discuz x3.4进行全面的网站渗透测试的时候,发现discuz多国语言版存在远程代码执行漏洞,该漏洞可导致论坛被直接上传webshell,直接远程获取管理员权限,linux服务器可以...

网站安全
07/16
33
0
保护企业信息安全,阿里云渗透测试服务发布

随着云服务和电商的发展,越来越多的用户将个人资料存储在“云”上,越来越多的交易通过网络完成。然而,云上业务应用漏洞泛滥,安全情况不容乐观。有感于国内企业防护状况不佳,阿里云为企业...

云攻略小攻
05/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java自学指南五、编码工具

工欲善其事,必先利其器... 想要高效率编码输出和快速处理文本,需要 熟悉编程语言的语法 盲打 至少需要熟练使用一种文本编辑器 至少熟练熟练使用一种 IDE (集成开发环境) 现实中,看到过二指...

ConstXiong
46分钟前
6
0
Java 集合框架

早在 Java 2 中之前,Java 就提供了特设类。比如:Dictionary, Vector, Stack, 和 Properties 这些类用来存储和操作对象组。 虽然这些类都非常有用,但是它们缺少一个核心的,统一的主题。由...

天子剑毅
今天
7
0
Oracle 回滚段

--查询数据文件 select t.TABLESPACE_NAME, --表空间名 t.FILE_NAME, --文件名 t.AUTOEXTENSIBLE, --是否自动扩展 t.BYTES / 1024 / 1024 as tsize, --表空间初始大小 t.MAXBYTE...

max佩恩
今天
6
0
在Serverless Kubernetes(ASK)集群中使用Nginx Ingress

ASK: Alibaba Cloud Serverless Kubernetes 导读 不同于阿里云ACK集群默认通过nginx-ingress-controller提供ingress能力,在ASK(Serverless Kubernetes)集群中默认基于SLB七层转发提供ingre...

阿里云官方博客
今天
5
0
Android换肤原理和Android-Skin-Loader框架解析

https://blog.csdn.net/stven_king/article/details/78648095 https://www.jianshu.com/p/b0253de8ac04 https://blog.csdn.net/weixin_38261570/article/details/82079540......

shzwork
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部