MetInfo任意檔案讀取漏洞的修復與繞過案例

2022-09-23 22:18:18 字數 2204 閱讀 2740

404實驗室內部的wam(web應用監控程式,文末有關於wam的介紹)監控到 metinfo 版本更新,並且自動diff了檔案,從diff上來看,應該是修復了乙個任意檔案讀取漏洞,但是沒有修復完全,導致還可以被繞過,本文就是記錄這個漏洞的修復與繞過的過程。

漏洞簡介

metinfo是一套使用php和mysql開發的內容管理系統。 metinfo 6.0.0~6.1.0版本中的 old_thumb.class.php檔案存在任意檔案讀取漏洞。攻擊者可利用漏洞讀取**上的敏感檔案。

漏洞影響

metinfo 6.0.0

metinfo 6.1.0

漏洞分析

看到\metinfo6\app\system\include\module\old_thumb.class.php

# metinfo enterprise content management system

# copyright (c) metinfo co.,ltd ( all rights reserved.

defined('in_met')or exit('no permission');

load::sys_class('web');

class old_thumb extends web

......

從**中可以看到,$dir直接由$_get['dir']傳遞進來,並將../置空。目標是進入到第乙個if裡面的readfile($dir);,讀取檔案。看看if語句的條件,裡面的是將$dir中包含$_m['url']['site']的部分置空,這裡可以不用管。外面是乙個strstr函式,判斷$dir中http字串的首次出現位置,也就是說,要進入到這個if語句裡面,$dir中包含http字串即可。

從上面的分析可以構造出payload,只要$dir裡包含http字串就可以進入到readfile函式從而讀取任意函式,然後可以使用..././來進行目錄跳轉,因為../會被置空,所以最終payload如下

對於這個任意檔案讀取漏洞,官方一直沒補好,導致被繞過了幾次。以下幾種繞過方式均已提交cnvd,由cnvd通報廠商。

第一次繞過

根據wam的監測記錄,官方5月份的時候補了這個漏洞,但是沒補完全。

看下diff:

可以看到,之前的只是把../置空,而補丁是把../和./都置空了。但是這裡還是可以繞過。可以使用.....///來跳轉目錄,.....///經過str_replace置空,正好剩下../,可以跳轉。所以payload是

第二次繞過

在提交第一種繞過方式給cnvd之後,metinfo沒多久就更新了,來看下官方的修復方式。

diff:

這裡加了乙個判斷,$dir要以http開頭,變換一下之前的payload就可以繼續繞過了。

第三次繞過

再次提交之後,官方知悉該繞過方式,又補了一次了。

看下diff:

看到補丁,又多加了乙個判斷條件,使用strpos函式查詢./首次出現的位置,也就是說不能有./。沒了./,在windows下還可以用..\來跳轉目錄。所以payload

遺憾的是,這個只能在windows環境下面才可以。

最終目前在官網供**的最新的6.1.0版本中,old_thumb.class.php這個檔案已經被刪除。

總結一次次的修補,一次次的繞過,感覺開發者應該是沒有理解到漏洞利用的原理,一直以類黑名單的形式在修復,而黑名單的形式總是容易被繞過。除了刪除檔案外,根據實際功能,可以考慮使用白名單方式修復,例如限定所能讀取的檔案型別為型別。

關於wam

wam 應用監控:通過監控網際網路開源web應用的版本更新,自動化diff審計源**,傳送漏洞告警郵件,第一時間發現漏洞及後門植入。

功能特性

目前已支援150種 web 應用的版本原始碼監控;

支援監控 web 應用歷史版本原始碼包**;

監控 web 應用版本發布頁面自動**更新;

自動 diff 版本,比較檔案更新,高亮顯示,自動審計可疑漏洞或後門;

自動郵件告警可以漏洞/後門審計結果。

好訊息來了,黑哥計畫在2018 kcon大會上直接將wam開源發布。

metinfo 6 0 任意檔案讀取漏洞

1.雙擊執行桌面phpstudy.exe軟體 2.點選啟動按鈕,啟動伺服器環境 1 雙擊啟動桌面seay源 審計系統軟體 2 點選新建專案按鈕,彈出對畫框中選擇 c phpstudy www metinfo 點選確定 漏洞分析 public function doshow 頁面建立old thumb...

任意檔案讀取漏洞小記

漏洞介紹 realpath filepath file filename path path inputfile url urls lang dis data readfile filep src menu meta inf web inf 任意檔案讀取常用敏感檔案路徑 windows c boot...

GlassFish任意檔案讀取漏洞跟蹤

漏洞描述 趨勢跟蹤 根據我們在全球部署的蜜罐捕獲的資料顯示,針對glassfish的攻擊從來沒有停止過,poc在1月14日 公布之後,攻擊達到了頂峰,下圖為最近兩周蜜罐捕獲的攻擊趨勢。提取乙個月內針glassfish進行了全網大規模掃瞄的ip進行分析,top15個ip如下 排名第一的ip位於荷蘭阿姆...