Nginx 解析漏洞
Nginx 解析漏洞是一种常见的安全漏洞,主要由于Nginx配置文件和PHP配置文件的错误配置所引发,以下是对Nginx文件解析漏洞的详细分析:
(图片来源网络,侵删)
维度 | |
原理 | Nginx文件解析漏洞的产生原因主要是由于Nginx配置文件default.conf以及PHP配置文件php.ini的错误配置,Nginx在/etc/nginx/conf.d/default.conf文件中的配置fastcgi_params SCRIPT_FILENAME $DOCUMENT_ROOT/$fastcgi_script_name 会将上层路径写入PATH_INFO变量中,以告知PHP上层路径是什么,而PHP在配置文件php.ini中的cgi.fix_pathinfo变量默认值为1,表示开启,该变量会对文件路径进行美化,security.limit_extensions属性位于/etc/php-fpm.d/www.conf目录下,其作用是设置可以被当作PHP文件解析的文件后缀,当security.limit_extensions属性的属性值设为空时,上述配置会导致文件被错误地解析为PHP文件。 |
危害 | 该漏洞的存在可让攻击者绕过文件上传时的检测,将含有危险代码的合法文件上传至服务器;之后再利用文件解析漏洞执行上述文件,从而容易让攻击者留下后门,导致机密数据被窃取、核心业务数据被篡改、网页被篡改、数据库所在服务器被攻击变为傀儡主机,导致局域网(内网)被入侵等。 |
检测 | 由于该漏洞的产生原因位于服务端,除非通过信息收集等手段获取被攻击方的配置文件,否则其配置文件的信息一般不可见,最通用的检测方式是依靠模糊测试来实现。 |
防御 | 该漏洞产生的原因是Nginx以及PHP服务器的配置不合理所致,最好的防御方法就是使用规范化、模板化、经由安全测试的配置文件,在系统上线之前对敏感配置文件进行检查,也是一个非常有效的防御手段。 |
复现 | 复现环境:该复现过程借助vulhub的docker环境进行测试,启动容器后,查看nginx的配置文件default.conf(路径为/etc/nginx/conf.d/default.conf)可见fastcgi_param SCRIPT_FILENAME 选项已指定值,现打开web网站,进行漏洞测试,上传含POC的图片马后,打开网站的存储路径,发现图片正常显示,此时在原有路径下,加入“ /not_exist.php”,则发现该图片马被当作PHP文件执行,漏洞复现成功。 |
Nginx文件解析漏洞是一种严重的安全问题,需要引起足够的重视并采取相应的防御措施。
(图片来源网络,侵删)
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/59465.html