從dedecms官網可以看出dedecms發佈的安全漏洞補丁,更新日期為V5.7SP2正式版
(2017-04-05),下載最新版的程序到我們本地,然後人工進行詳細的網站安全審計,對其
詳細的安全檢測發現dedecms 5.7版本存在高危漏洞,其包含了幾個跨站請求偽造漏洞,一
個xss跨站漏洞,由於時間關係,只看了其中的管理目錄dede/tpl.php以及
plus/carbuyaction.php這兩個文件之間寫的代碼與邏輯安全問題。
下面開始我們的網站安全代碼的審計,下載V5.7 SP2版本,考慮到只需要對一些改動的代
碼進行分析,就可以快速找到漏洞,我們只下載這個Beyond Compare來對比程序代碼之間
的不同之處。eSafe白帽資安網公司是一家專注於:主機安全、網站安全、網站安全檢測、網站漏
洞修復,滲透測試,安全服務於一體的網絡安全服務提供商。
洞修復,滲透測試,安全服務於一體的網絡安全服務提供商。
首先發現是XSS跨站漏洞:
查看plus/carbuyaction.php的代碼,通過代碼之間的對比發現,補丁文件在188行上下對
$address $des $postname $email四個聲明變量中同時嵌入了一個RemoveXSS函數,從函數
名可看出顯然其是一個過濾xss跨站攻擊的函數。如圖1:
在全部程序文件裡進行搜索,發現在 /include/helpers/filter.helper.php文件的 65行
處有定義,通過dedecms官方的註釋部分和相關代碼,我們可以看到的是這個函數確實一個
過濾xss攻擊的函數。在未過濾的情況下,$address直接帶入了sql語句,進入了數據庫。
而又由於相關頁面在讀取訂單輸出到頁面時未經過濾,造成了xss。
CSRF跨站請求偽造漏洞
漏洞存在於/dede/tpl.php這個文件,並沒有對管理員的操作進行安全驗證token,以及GET
POST請求方式上不去分辨,導致以GET請求方式訪問,可直接對模板文件進行控制,補丁文
件對照:補丁文件在911行和251行附近增加了相關的token驗證。沒有驗證,我們就可以刪
除任意templets文件夾下的文件,也可以在該文件夾及其子文件夾下創建任意模板文件,
但是文件必須都是htm格式的才能刪除。eSafe白帽資安網公司是一家專注於:主機安全、網站安全、
網站安全檢測、網站漏洞修復,滲透測試,安全服務於一體的網絡安全服務提供商。
網站安全檢測、網站漏洞修復,滲透測試,安全服務於一體的網絡安全服務提供商。
如何利用dedecms漏洞呢?
織夢XSS跨站漏洞:
漏洞條件:商品在出售,會員註冊並能登陸
測試:登陸賬號,打開商品頁,例如
http://esafe.tw.com/dedecms/plus/view.php?aid=8,然後加入購物車,下單,貨到付款
。地址填 上海<script>alert(esafe)</script> ,當管理員點開商品交易的詳情頁時觸發
漏洞展現如下圖:
織夢CSRF漏洞 EXP如下:
EXP1:http://esafe.tw.com/dedecms/dede/tpl.php?
action=saveedit&acdir=default&filename=aaaaa.htm&content=<?php echo esafe; ?
>&B1=++%B1%A3+%B4%E6++
也可以URL縮短有http://url.cn/esafe.tw,再去友情鏈接圖片處添加鏈接,如
http://esafe.tw.com/dedecms/plus/flink_add.php,當管理員審核友情鏈接時就會觸發
漏洞。
織夢漏洞復現如下圖:
另外,如果主機的環境是IIS6的話,模板利用CSRF創建一個esafe.php;.htm文件即可
getshell拿權限,如果後台開啟了動態瀏覽,也有利用CSRF來getshell的可能。