铭竟科技
2025-12-09 21:56:50

什么是文件解析漏洞,如何处理

分享到:

文件解析漏洞是一种安全漏洞,攻击者可以利用它让服务器将恶意文件(如木马)以可执行脚本的形式解析和运行,从而控制服务器。这种漏洞通常出现在Web服务器(如Apache、IIS、Nginx)与解析引擎(如PHP)的交互过程中。‌

1

2


漏洞原理

文件解析漏洞的核心在于服务器对文件扩展名的处理规则。服务器在解析文件时,会从右到左检查扩展名。如果遇到未知或不可识别的扩展名,服务器可能会回退并尝试将文件作为其他类型的脚本(如PHP)解析。‌

1

 例如,在Apache服务器中,一个文件如 test.php.qwe.asd 可能会被解析为PHP文件,因为 .qwe 和 .asd 不是Apache默认的可执行扩展。‌

1


解析漏洞详解

CSDN软件开发网

文件解析漏洞

CSDN软件开发网

常见类型和示例

‌Apache解析漏洞‌:


‌原理‌:Apache从右到左解析扩展名。如果配置了 AddHandler php5-script .php 或 AddType application/x-httpd-php .jpg,即使文件扩展名是 .jpg 或其他图片格式,也会被当作PHP执行。‌

1

‌触发形式‌:例如,上传一个名为 test.php.jpg 的文件,如果服务器配置不当,访问 test.php.jpg 可能会执行其中的PHP代码。‌

1

2

‌CVE-2017-15715‌:通过在PHP文件后添加空格或换行符(如 evil.php%0a),利用服务器解析规则绕过安全检查。‌

2

‌IIS解析漏洞‌:


‌IIS 5.x-6.x‌:主要针对ASP脚本。例如,文件 xx.asp;.jpg 会被解析为ASP文件,因为IIS忽略分号后的内容。目录解析也存在,如 www.xxx.com/xx.asp/xx.jpg 会将目录下的文件当作ASP执行。‌

1

‌IIS 7.5‌:漏洞与Nginx类似,通常由于PHP配置中 cgi.fix_pathinfo 被开启,导致文件如 logo.jpg/x.php 被解析为PHP。‌

1

‌Nginx解析漏洞‌:


‌原理‌:Nginx通过CGI方式解析PHP,如果 cgi.fix_pathinfo 开启,访问 1.jpg/1.php 可能将 1.jpg 作为PHP文件解析。‌

1

‌CVE-2013-4547‌:通过在图片文件后添加空格或特殊字符(如 %00),绕过解析限制。‌

2

漏洞利用场景

攻击者通常通过上传恶意文件(如图片马)来利用此漏洞。例如:


在文件上传功能中,上传一个名为 shell.asp;.jpg 的文件,如果服务器解析漏洞存在,访问该URL可能执行ASP代码。‌

1

对于Apache,上传 test.php.jpg 并配置服务器允许 .jpg 作为PHP执行,即可触发漏洞。‌

2

防御措施

‌服务器配置‌:避免在Apache配置中使用 AddHandler 或 AddType 指令关联可执行脚本到非安全扩展名。确保PHP配置中 cgi.fix_pathinfo 设置为0。‌

1

‌文件上传限制‌:在应用层验证文件扩展名和内容类型,禁止上传可执行脚本。使用随机化文件名避免命名冲突。‌

1

2

‌安全更新‌:及时升级服务器软件(如Apache、IIS、Nginx)到最新版本,以修复已知漏洞。

如果您有具体的服务器环境或场景,可以提供更多细节以便更针对性的建议。


文件解析漏洞


上一篇:建个网站可以没有后端吗
下一篇:没有了