您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關怎么進行Discuz! X任意文件刪除的漏洞分析,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
0x00 背景介紹
Discuz 官方于2017年9月29號在Git上提交更新:優化 加強安全性。360CERT跟進了此更新并確認存在任意文件刪除漏洞。
0x01 漏洞描述
此漏洞曾在2014年被提交到烏云Wooyun平臺,Discuz進行了針對性修復。但360CERT通過此次commit分析,由于之前的修復不完全,可導致補丁被bypass,攻擊者登錄后可以通過設置個人資料為刪除文件路徑,并構造一次文件上傳,就可以繞過補丁造成任意文件刪除。
0x02 漏洞攻擊影響
影響面
普通注冊用戶即可實現任意文件刪除。經過360CERT研判后確認,漏洞風險等級高。
影響版本
Discuz! X3.4
Discuz! X3.3
Discuz! X3.2
Discuz! X2.5
修復版本
碼云平臺Discuz!X
commit 7d603a197c2717ef1d7e9ba654cf72aa42d3e574
0x03 漏洞詳情
1、技術細節
可以看到在14年修復的打的補丁:
$_G['cache']['profilesetting'][$key]['formtype']== 'file'對formtype類型做了驗證。
查看昨日commit,一共刪除了五處unlink文件刪除函數,其中對228行unlink函數做的限制最少。
在spacecp_profile.php里有文件上傳處理函數,其中使用$upload->get_image_info($attach['target'])
對上傳文件進行檢查,如果不是圖片則continue跳過,所以需要上傳為圖片類型。
刪除文件名為$space[$key],也沒有進行安全處理
只需要在前一次提交數據對參數進行進行保存,比如真實姓名處填寫刪除文件名../../../robots.txt,數據庫中的realname就會被保存為../../../robots.txt,再次請求上傳文件,就會觸發并刪除文件.
0x04 修復建議
按照官方Git更新,徹底刪除spacecp_profile.php下unlink處代碼
關于怎么進行Discuz! X任意文件刪除的漏洞分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。