“SCSA-S学习导图+”系列:文件解析

本文探讨了文件解析漏洞的由来,管理员配置错误与Web容器漏洞如何引发问题,以IIS、Nginx和Apache为例,详细介绍了漏洞实例和安全配置误区。同时揭示了如何通过巧妙利用文件名构造绕过白名单,结合文件上传漏洞实现攻击。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本期引言:文件解析是当服务器接收到客户端发送的HTTP请求时,Web容器(Apache、Ngingx、IIS等)首先会根据文件的后缀名,来决定如何去处理这个请求。在服务器中如果找到可以处理这类后缀名的应用程序,会提交给相应的应用程序处理;如果找不到则直接把这个文件返还给客户端。文件解析同样也是Web系统的一项正常功能,但为什么会导致漏洞产生呢?通过本篇文章带大家走进文件解析漏洞的领域中。

什么是文件漏洞解析

文件解析漏洞是由于网站管理员的配置不当或者Web容器自身的漏洞,导致一些特殊的文件在解析时被当作脚本文件解析执行。文件解析漏洞与文件上传漏洞是两种不同类型的漏洞,文件解析漏洞一般会结合文件上传漏洞组合利用。

网站管理员的配置不当会导致文件解析漏洞产生,比如由于Apache配置文件配置不当,导致php3、php5、phtml等文件被当成php脚本文件执行。

Web容器自身的漏洞是造成文件解析漏洞的常见原因,比如IIS6.0解析漏洞、IIS7.5解析漏洞、Nginx解析漏洞。

常见的Web容器解析漏洞

2.1 IIS解析漏洞

IIS除了解析.asp后缀的文件外,还可以把.cer和.asa后缀的文件当作asp脚本文件执行,并且IIS解析漏洞在IIS 6.0和II S7.5两个版本中都存在。

  • IIS6.0解析漏洞:/test.asp/test.jpg和test.asp;.jpg,两种利用方式

  • IIS7.5解析漏洞:test.jpg/任意文件名.php

2.2 Nginx解析漏洞

Nginx对于任意文件名,在文件名的后面添加“/任意文件名.php”,就可以触发Nginx解析漏洞。

  • Nginx解析漏洞:test.jpg/任意文件名.php,与IIS7.5解析漏洞类似

2.3 Apache解析漏洞

Apache解析文件的规则是从右向左开始判断解析,一个文件可以有多个以点分隔的后缀,当右边的后缀名无法识别,则继续向左判断解析,直到能够识别为止;如果所有后缀名都不可识别,则暴露源文件。

  • Apache解析漏洞:1.php.aaa

文件解析漏洞实例

Apache解析漏洞与用户的配置有密切关系。严格来说,属于用户配置不当的问题。Apache和php有三种结合方法:

  • CGI:通常翻译为共同网关接口,是HTTP服务器与机器上的其他程序进行通信的一个接口,让Web服务器必要时启动额外的程序处理动态内容。

  • FastCGI:CGI解释器的更快实现,可以提供良好的性能、伸缩性、Fail-Over特性等。

  • Module:把php编译为Apache的模块,也是用得最多的一种方法。

Apache文件解析漏洞就发生在Module结合方法上。

Apache文件解析漏洞的特性是:Apache默认一个文件可以有多个以点分隔的后缀,在处理多后缀文件时会按照从右往左解析的特点,当右边的后缀无法识别,则继续向左识别,直到遇到自己能够解析的扩展名为止。若全部不能够解析,则暴露源代码。

1. 登录操作机,访问http://ip,上传一个名为xxx.php的文件,被拦截,判断为白名单验证。

2. 将文件重命名为xxx.php.png,并上传文件,文件内容如下,上传成功。

3.访问http://ip/uploadfiles/xxx.php.png,解析失败。

4.其实,解析漏洞的产生,是由于运维人员在配置服务器时,为了使Apache服务器能解析php,而自己新建一个配置文件添加一个handler,它的作用也是为了让Apache把php文件交给php_module解析,但是注意到它与SetHandler:它的后缀不是用正则去匹配的。所以,在文件名的任何位置匹配到php后缀,它都会让php_module解析。例如:

5.利用Apache解析漏洞,再次访问http://ip/uploadfiles/xxx.php.png,文件被当作php脚本文件解析执行。

总结

通过此文,发现文件解析漏洞会结合文件上传漏洞出现,当文件上传使用白名单做限制,只能上传图片文件,导致脚本文件无法上传,上传图片马绕过白名单文件上传的验证,但是图片马又无法解析,利用Apache文件解析漏洞的特点:任意文件名.php.png.xxx,Apache从右向左找文件后缀识别,当遇到不认识的后缀会向前继续找,直到找到认识且能解析的后缀,从而解析脚本文件。

本期作者:石岩,深信服培训认证中心主任,深信服安全服务认证专家SCSE-S产业教育中心资深讲师,中国网络空间安全协会会员,深圳大学专业学位研究生校外导师;曾任国内知名安全厂商安全认证负责人、安全服务工程师、信息安全咨询顾问、信息安全讲师多次为政府、运营商、企业、本科、高职学员以及高校老师进行信息安全培训;多次组织、参与职业能力评价认证工作,擅长Web安全、渗透测试、操作系统等多个方向的课程。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值