|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Twitter网友Coxxs公布了疑似Discuz! X 论坛的漏洞,通过调用网页控制台Console键入特定代码,执行代码后会先删除UCenter 内的帐号,随后UCenter 会通知 Discuz! 删除用户帐号。
1、进入欲删除账号的网站,登陆欲删除的账号
2、按F12打开控制台,点击「Console」,为了分便操作,先清空控制台,点击左上角‘禁止’按钮清空
3、复制以下代码到Console中,按下Enter键执行代码
- location.href=((d=(await(await fetch(“./home.php?mod=spacecp&ac=avatar”,{credentials:’include’})).text()).match(/\/\/\S+\/images\/ca\S+&ag/g)[0].replace(‘images/camera.swf?’,’?m=user&a=delete&’))&&confirm(‘真的要[永久]删除你的ID?’))?d:”;
复制代码
4、弹出对话框,点击「确定」
*.部分浏览器可能会拦截对话框,请查看地址栏处是否有对话框被拦截。
5、返回一个大于0的整数,删除账号成功,尝试登陆,失败。
说明:此操作是删除的是 UCenter 内的帐号,UCenter 会通知 Discuz! 删除用户帐号
通知可能出现延迟,或不成功。因此可能不会立即登出网站
如果通知最终成功,该帐号及其所有帖子都会从 Discuz! 中删除
如果通知不成功,帐号登出后也将无法登录。此时可以注册一个新的同名帐号,覆盖原帐号。原帐号信息将被删除,其帖子将无法阅读(但不会删除)。
解决方案:
1、修改文件一:“/source/plugin/mobile/api/2/uploadavatar.php”
找到82行,把如下代码:
$result = self::uc_api_post_ex('user', 'rectavatar', array('uid' => $_G['uid']), $extra);
修改为:
$result = self::uc_api_post_ex('user', 'rectavatar', array('uid_avatar' => $_G['uid']), $extra);
2、修改文件二:“/source/plugin/wechat/wechat.class.php”
找到549行,把如下代码:
$result = self::uc_api_post_ex('user', 'rectavatar', array('uid' => $uid), $extra);
修改为:
$result = self::uc_api_post_ex('user', 'rectavatar', array('uid_avatar' => $uid), $extra);
3、修改文件三:“/uc_client/client.php”
找到591行,把如下代码:
$uc_input = uc_api_input("uid=$uid");
修改为:
$uc_input = uc_api_input("uid_avatar=$uid");
4、修改文件四:
修复漏洞的原理,就是把input里面的参数uid改成了uid_avatar,这样修改头像和删除用户的加密字符串不一样了!
|
评分
-
查看全部评分
|