Dedecms sp2 5.7 后台getshell審計


前言

最近看了《代碼審計-企業級Web代碼安全構架》第一遍,頗有心動,找了個織夢來練練手

環境

win10 mysql5.7+php5.4.45
工具 vs+seay

后台代碼任意文件寫入

首先我們先還是必須得熟悉一下dede目錄結構

1、程序核心程序目錄及簡介
/include目錄 程序核心目錄
config_base.php 環境定義文件。用於檢測系統環境,定義工作目錄,保存數據庫鏈接信息,引入常用函數等,建議不要修改。
config_hand.php 系統配置文件。定義系統常用的配置信息定義,可從后台管理直接生成該文件。
config_passport.php 通行證文件
config_rglobals.php 檢測系統外部變量
config_rglobals_magic.php 同上
inc_archives_view.php 用於瀏覽文檔或對文檔生成HTML
inc_arclist_view.php 用於瀏覽頻道列表或對內容列表生成HTML
inc_arcmember_view.php 用於瀏覽會員發布的文檔
inc_arcpart_view.php 用於解析和創建全局性質的模板,如頻道封面,主頁,單個頁面等
inc_arcsearch_view.php 用於文檔搜索
inc_arcspec_view.php 用於瀏覽所有專題列表或對專題列表生成HTML
inc_channel_unit.php 用戶解析特定頻道的附加數據結構信息
inc_channel_unit_functions.php 系統共用函數集合
inc_downclass.php 防采集隨機字符串函數
inc_freelist_view.php 用於對特定內容列表生成HTML
inc_functions.php 可供用戶使用的函數集合
inc_imgbt.php GetTypeidSelMember
inc_memberlogin.php 用於用戶登錄及獲得會員狀態
inc_photograph.php 用於處理系統中的圖片,例如水印,縮略圖等
inc_photowatermark_config.php 圖片處理參數定義
inc_rss_view.php 用於瀏覽頻道RSS或對RSS生成靜態文件
inc_separate_functions.php SpGetArcList函數,用於獲得文檔列表
inc_sitemap.php 用於生成網站地圖
inc_type_tree.php 用於選擇欄目的目錄樹
inc_type_tree_member.php 同上,會員使用
inc_typelink.php 用於顯示文章的位置和欄目位置等
inc_typeunit_admin.php 用於頻道管理時的一些復雜操作,主要用於后台
inc_typeunit_menu.php 同上
inc_userlogin.php 用於管理員登錄
inc_vote.php 用於管理投票
jump.php 用於超鏈接跳轉
pub_charset.php 共用字符處理函數,GB/UTF-8/Unicode/BIG5等互換
pub_collection.php 用於采集
pub_collection_functions.php 采集用函數
pub_datalist.php 后台管理用數據列表
pub_datalist_dm.php 同上,不使用模板
pub_db_mysql.php 用於操作數據庫
pub_dedehtml2.php 用於采集中的HTML解析
pub_dedehtml.php HTML解析器
pub_dedetag.php 用於dede模板標簽解析
pub_httpdown.php 用於下載http中的資源
pub_oxwindow.php 后台程序擴展
pub_splitword_www.php 織夢分詞算法
validateimg.php 驗證碼
vdimgck.php 驗證碼

/inc 共用函數目錄
inc_fun_funAdmin.php 獲取拼音碼等函數
inc_fun_funString.php html代碼處理等函數
inc_fun_SpGetArcList.php 獲取文檔列表SpGetArcList
對於菜鳥來說,對於菜鳥來說,config_base.php,這個文件,當你的程序出現問題,需要覆蓋,當你的程序出現問題,需要覆蓋。不要覆蓋 config_base.php和config_hand.php文件,里面都是dede一些核心配置文件,對於高手來說,也許修改幾個php頁面已經達不到目的了,就需要了解dede的數據庫結構,下面是部分關鍵數據表的結構和說明,不完全,還沒有整理完全,過幾天發布完整版本 

這里我們先看index.php包含了一個common.inc.php的文件我們跟進看一下

可以看見這里存在變量注冊漏洞具體參考

https://xz.aliyun.com/t/2911

 

 然后我們定位漏洞代碼

 

 這里者fwrite里面的兩個參數我們都可通過Dede的任意變量注冊來進行實現控制從而實現任意文件寫入

 

 

后台配置文件刪除重裝getshell

那按照上面的變量覆蓋思路很容易就找到一處任意文件刪除在del方法里面

 

 但是想法總是美好的 然而現實

 

 

我作斜杠跑哪里去了?

簡單的調試一下

 

 看見到這一步的時候對filename做了一個正則處理

 

 我嘗試過 但都以失敗告終了繞不過那怎么辦吶?重新找一個吧

 

 

 

 

 參考

https://www.ay46.com/jiaocheng/gaoji/730.html

https://mochazz.github.io/2018/03/08/%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1%E4%B9%8BDedeCMS%20V5.7%20SP2%E5%90%8E%E5%8F%B0%E5%AD%98%E5%9C%A8%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E%EF%BC%88%E5%A4%8D%E7%8E%B0%EF%BC%89/

總結

其實都是因為這個全局變量注冊漏洞太變態了

快就是慢,少就是多


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM