歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

metinfo 6.2.0最新版本前臺注入分析

來源:本站整理 作者:佚名 時間:2019-04-02 TAG: 我要投稿

看到某個表哥發的metinfo 6.1.3最新注入(https://xz.aliyun.com/t/4508),以前我發過metinfo利用注入getshell的文章,這里正好可以結合。(https://nosec.org/home/detail/2324.html),在檢查官方發布的最新版6.2.0版本的時候,發現該漏洞并未修復。
 
利用條件
前臺,(https://xz.aliyun.com/t/4508 )作者在這里說需要注冊會員,其實有一處不需要。
 
漏洞詳情
這里關鍵點在auth類的encode()和decode()方法。看下代碼:

這里兩個方法全都調用了authcode()方法,跟進authcode看一下:

這里decode和encode算法可逆,但我們需要知道$key的值,查看構造函數:

這里$key的值是來源于met_webkeys這個配置,查看met_webkeys來源發現在安裝的時候把這個key寫入到./config/config_safe.php文件中。

查看/config/config_safe.php文件,這里寫入方式類似以下,但p牛在某篇文章中說過,這種是無法解析的,php后面必須要有一個空白字符,右鍵查看源代碼即可得到met_webkeys,但有的會報錯,根據這個表哥所說和php線程安全有關,本地試了下好像是這樣。



這里有兩個利用點,簡單說下其中一個。在register類的doemailvild()方法中,這里把用戶提交的p參數進行了解密,并且傳入到了get_user_valid()方法中。

查看get_user_valid()方法,這里又把解密后的值傳入到了get_user_by_username()方法。

查看get_user_by_username()方法,又傳入了get_user_by_nameid()方法。

查看get_user_by_nameid()方法,直接拼接。

這里基本就清楚了,將auth類的authcode()方法copy本地。

訪問本地文件得到加密后的字符串。

將加密后的字符串放到cookie,get或者post中,構造請求提交,延時注入成功。

 
payload
這里有兩個,一個是不需要登陸就可注入,另一個是coolcat表哥所說的需要以會員登陸。以下請自行替換p參數。
1、不需要登陸
GET /admin/index.php?n=user&m=web&c=register&a=doemailvild HTTP/1.1
Cookie: p=00c7%2FDBwD23b41olxVCthTvDDTRBhldmrrdyA8S3t%2F3yAl4QZ0P%2FSfOS5zlB
2、 需要登陸
GET /admin/index.php?n=user&m=web&c=profile&a=dosafety_emailadd HTTP/1.1
Cookie: p=497cD9UpkDtsvFzU9IKNlPvSyg1z%2bf09cmp8hqUeyJW9ekvPfJqx8cLKFSHr;
 

【聲明】:黑吧安全網(http://www.gkrbnd.live)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        福彩原副主任