Nginx解析漏洞,我们该如何防范和应对?

Nginx 解析漏洞详解

Nginx 解析漏洞是一类常见的网络安全问题,主要由于配置错误导致,以下是对这一漏洞的详细分析:

Nginx解析漏洞,我们该如何防范和应对?插图1
(图片来源网络,侵删)

原理

1、配置文件错误

Nginx 配置:在/etc/nginx/conf.d/default.conf 文件中,错误的配置可能包括fastcgi_params SCRIPT_FILENAME $DOCUMENT_ROOT/$fastcgi_script_name

PHP 配置:在php.ini 文件中,cgi.fix_pathinfo 默认值为1,这会对文件路径进行美化,如果一个文件不存在,它会向上寻找存在的文件,最终可能会将图片文件当作 PHP 文件执行。

安全设置:在php-fpm.conf 中,security.limit_extensions 属性需要设为空,以允许将非 PHP 文件当作 PHP 文件执行。

2、具体机制

Nginx解析漏洞,我们该如何防范和应对?插图3
(图片来源网络,侵删)

当 URL 指定的文件不存在时,Nginx 会尝试解析上级文件,导致安全问题。

上传包含 PHP 代码的图片文件(如 .png),通过添加/not_exist.php 后缀,可以使其被当作 PHP 文件执行。

危害

绕过检测:攻击者可以利用该漏洞绕过文件上传检测,上传包含恶意代码的文件。

执行恶意代码:通过文件解析漏洞执行上述文件,可能导致后门植入,数据窃取和篡改。

服务器控制:生成 shell.php 文件,实现对靶机的控制。

Nginx解析漏洞,我们该如何防范和应对?插图5
(图片来源网络,侵删)

检测

模糊测试:最通用的检测方式是通过模糊测试来实现。

防御

规范化配置:使用规范化、模板化、经过安全测试的配置文件。

敏感配置检查:系统上线前对敏感配置文件进行检查。

设置限制:将php.ini 中的cgi.fix_pathinfo 设置为0,限制security.limit_extensions 只解析.php 文件。

复现

环境搭建:使用 Vulhub 的 Docker 环境进行测试。

步骤示例

启动容器并查看 Nginx 配置文件。

上传含 POC 的图片马文件。

访问网站并添加/not_exist.php,观察是否被当作 PHP 文件执行。

通过以上步骤和措施,可以有效理解和防范 Nginx 解析漏洞。

小伙伴们,上文介绍nginx 解析漏洞的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/65652.html

小末小末
上一篇 2024年10月2日 07:39
下一篇 2024年10月2日 07:49

相关推荐