DedeCMS-V5.7 前臺雞肋&后臺getshell漏洞

0x01 吹牛逼

官方下載最新安裝包http://updatenew.dedecms.com/base-v57/package/DedeCMS-V5.7-UTF8-SP2.tar.gz

織夢5.7會員中心,由于為了安全性問題,限制了注冊會員在會員中心發布信息的時候上傳圖片,但是管理員登錄會員中心發布信息的時候上傳圖片卻不受影響。那該如何解決呢?下面我們來說明一下具體的解決方案。 首先,具體的問題為,注冊會員點擊圖片上傳,預覽選擇好本地圖后點擊上傳到服務器上,會出現如下所示結果: 圖片上傳失敗,并無像正常上傳圖片后提交按鈕跳轉到相應的圖像屬性界面上,僅在當前窗口上彈出一個滾動條,上面的滾動條里面提示為“提示:需輸入后臺管理目錄才能登陸”,但因滾動條高度受限制了所以我們看不到提示。想要查看具體的提升信息的話,請點擊向下的滾動條一直往下,即可出現文字提示。如圖: 現在知道具體原因后就容易解決問題了,直接搜索織夢網站程序文件夾下的全部包含“提示:需輸入后臺管理目錄才能登陸“的文件,找到include/dialog/config.php文件。其中有段代碼

//檢驗用戶登錄狀態$cuserLogin=?new?userLogin();if($cuserLogin->getUserID()?<=0)? {if(emptyempty($adminDirHand))? {? ShowMsg( 提示:需輸入后臺管理目錄才能登錄請輸入后臺管理目錄名: width:120px;/> ,? javascript:; );? exit();? }? $gurl?=? ../../{$adminDirHand}/login.php?gotopage= .urlencode($dedeNowurl);? echo? location=$gurl; ;exit();? }

所以說dedecms5.7要上傳圖片的話,必須按照上面做,我們這里是按照這個規則,認為管理員開啟了會員上傳圖片的權限,低于5.7的只要開啟會員中心即可

windows環境需要經過處理的圖片馬,需要處理的圖片馬是因為(繞過文件后綴名檢測以后,php-GD對圖片的渲染和處理會導致webshell代碼錯位失效,所以需要特殊的圖片馬進行繞過,圖片馬的制作)

漏洞文件:include\dialog\select_images_post.php


先看一下它引入的包,為了后期更好的讀通代碼。

位置:include\dialog\config.php

require_once(dirname(__FILE__)."/../common.inc.php");

繼續跟蹤文件

位置:include\common.inc.php

//轉換上傳的文件相關的變量及安全處理、并引用前臺通用的上傳函數if($_FILES){require_once(DEDEINC.'/uploadsafe.inc.php');}

經過這個文件以后,終于可以看到一個函數了,而這個函數上面寫到了作用,但它還有一個功能就是過濾掉一些非法函數,跟進去看看。

可以看到include\uploadsafe.inc.php下

$cfg_not_allowall ="php|pl|cgi|asp|aspx|jsp|php3|shtm|shtml";

禁止上傳的類型,采用的是黑名單的方式。

再往下看

$imtypes= array ? ?("image/pjpeg","image/jpeg","image/gif","image/png","image/xpng","image/wbmp","image/bmp");if(in_array(strtolower(trim(${$_key.'_type'})),$imtypes)) ? ?{$image_dd= @getimagesize($$_key);if(!is_array($image_dd)) ? ? ? ?{exit('Upload filetype not allow !'); ? ? ? ?} ? ?}

這里可以看到它判斷了圖片上傳的類型,這個繞過只需要修改http頭就可以了。

頭疼的是getimagesize這個函數,這個函數的作用是獲取圖片大小及相關信息。

再看一下上面的select_images_post.php文件

$imgfile_name = trim(preg_replace("#[\r\n\t\*\%\\\/\?><\|\":]{1,}#", '',$imgfile_name));

利用到了正則替換了。

如果在那個地方上傳,http://xxx.com/xxx.jpg這樣的話就會允許,但是xxx.php這樣就會變成失敗。

由于上面寫到了正則,所以繞過的方法也很簡單只要不等于黑名單的內容即可。比如http://xxxx.com/xxx.jpg?.ph%p這樣等等!

往下面再看一行代碼

if(!preg_match("#\.(".$cfg_imgtype.")#i",$imgfile_name))

這里的代碼寫的不嚴謹,只驗證了一次黑名單,而構造的圖片名字是test.jpg?.ph%p

0x02 漏洞測試

環境:Linux+phpstudy

上傳圖片抓包

POST/dedecms/include/dialog/select_images_post.php?CKEditor=body&CKEditorFuncNum=2&langCode=zh-cn HTTP/1.1Host: *******Content-Length:42080

Cache-Control:max-age=0

Origin:http://*******

Upgrade-Insecure-Requests:1

User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36(KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36

Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryZNrPDjZXsDjHXAYJ

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Referer: http://*****/dedecms/dede/archives_add.php?channelid=6&cid=0Accept-Encoding: gzip, deflateAccept-Language:zh-CN,zh;q=0.8

Cookie:***

Connection:close------WebKitFormBoundaryZNrPDjZXsDjHXAYJContent-Disposition:form-data; name="upload"; filename="test.jpg"Content-Type:image/jpeg*******------WebKitFormBoundaryZNrPDjZXsDjHXAYJ--

然后把filename修改一下

然后訪問路徑得

0x03 感謝

本文感謝wind、phpoop兩人的協助代碼分析!為什么說后臺可以getshell,因為前臺編輯器是調用后臺的編輯器,所以只需要上文提到注釋掉了前臺也可以getshell!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評論 6 546
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,814評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,779評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,109評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,287評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,799評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,515評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,750評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,933評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,492評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,703評論 2 380

推薦閱讀更多精彩內容