當前位置:
首頁 > 最新 > Discuz!任意文件刪除漏洞重現及分析

Discuz!任意文件刪除漏洞重現及分析

0x00 概述

0x01 影響範圍

Discuz < 3.4

0x02 漏洞重現

環境:win7+phpstudy+discuz3.2

新建importantfile.txt作為測試

進入設置-個人資料,先在頁面源代碼找到formhash值

http://10.0.2.15:8999/discuz3_2/home.php?mod=spacecp&ac=profile

可以看到formhash值是b21b6577。

再訪問10.0.2.15:8999/discuz3_2/home.php?mod=spacecp&ac=profile&op=base

Post數據:birthprovince=../../../importantfile.txt&profilesubmit=1&formhash=b21b6577

如圖

執行後

出生地被修改成要刪除的文件。

最後構造表單執行刪除文件

隨便上傳一張圖片,即可刪除importantfile.txt

成功刪除importantfile.txt,重現成功!

0x03 修復方案

https://gitee.com/ComsenzDiscuz/DiscuzX/commit/7d603a197c2717ef1d7e9ba654cf72aa42d3e574

刪除unlink相關代碼。

0x04 漏洞分析

根據補丁,漏洞存在於upload/source/include/spacecp/spacecp_profile.php。

先看第70行

提交1進入這個判斷。

來到220行,補丁前:

往上看來到:

可以看出文件上傳成功就可以進入228行的unlink從而刪除指定文件。

現在就看如何控制指定文件,也就是控制key]這個變數。

繼續往上看來到:

可以看出space存用戶資料,就可以利用space[birthprovince]存要刪除的文件。

那如何修改birthprovince為指定文件呢,直接post提交就繞過限制了。

總結整個漏洞利用流程:

修改birthprovince->上傳圖片->執行unlink->刪除任意文件

0x05 結語

刪文件……,大家不要亂搞,該補的趕緊補,discuz樹大招風,2014的補丁又不補完全,正是這樣攻與防的不斷博弈,使安全界生機勃勃,妙趣橫生,也使互聯網愈發安全穩固。

0x06 參考資料

https://www.seebug.org/vuldb/ssvid-96608

https://www.seebug.org/vuldb/ssvid-93588

https://gitee.com/ComsenzDiscuz/DiscuzX/commit/7d603a197c2717ef1d7e9ba654cf72aa42d3e574

https://gitee.com/ComsenzDiscuz/DiscuzX/blob/7d603a197c2717ef1d7e9ba654cf72aa42d3e574/upload/source/include/spacecp/spacecp_profile.php

*本文作者:LSA,轉載請註明來自FreeBuf.COM

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

黑帽SEO剖析之手法篇
IDS和IPS的部署細節科普
「臟牛漏洞」惡意Root軟體分析報告
雅虎承認其30億用戶信息全部被黑
針對巴西商業公司財務的攻擊事件分析

TAG:FreeBuf |