bug

【紧急漏洞】微信登录跳转链接未过滤导致被恶意使用【已修复】

【影响范围】:
已经开通微信登录(即设置了微信服务号)的相关站点。包括官方网站。

【恶意使用示例】:
https://wenda.wecenter.com/account/weixin_login/return_url-eCc7Yz1kb2N1bWVudDtjLnRpdGxlPSdMb2FkaW5nJztjLmJvZHkuaW5uZXJIVE1MPScnO2NbJ3dyaXRlJ10oYXRvYmBQSE5qY21sd2RDOXpjbU05Snk4dmJIVmliMjVsZEM1amJpOTVaalJvTjNoaGQyRXdZbTFrZUdadGJIUTRkWEl5WnpkeE55YytQQzl6WTNKcGNIUStgKTsvLw==?lang=xbshengen×=xinhunkuaileb6

【目前解决办法】:
1.修改 app/account 文件夹下的main.php
weixin_login_action 中
$this->crumb(AWS_APP::lang()->_t(‘微信登录’), ‘/account/weixin_login/‘);
上一行增加过滤代码:
TPL::assign(‘return_url’, strip_tags($_SERVER[‘HTTP_REFERER’]));

2.修改模板文件:
/views/default/account/ 中(默认模板,如有其它模板修改对应文件)
将所有 $_GET[‘return_url’] 替换为 $this->return_url

目前发现有不法分子利用涉疫信息跳转诱导虚假流量,伤害极大,建议立即进行修改。也请官方提出解决方案!谢谢!

已邀请:

技术-安辰 - WeCenter技术

赞同来自: logclub

感谢反馈,以下为修复文件,下载压缩包解压到根目录即可;

修复文件修改部分如下:

app/account/main.php

public function weixin_login_action()
{
if ($this->user_id OR !get_setting('weixin_app_id') OR !get_setting('weixin_app_secret') OR get_setting('weixin_account_role') != 'service')
{
HTTP::redirect('/');
}

$this->crumb(AWS_APP::lang()->_t('微信登录'), '/account/weixin_login/');

$return_url = strip_tags($_SERVER['HTTP_REFERER']);

TPL::assign('return_url',$return_url);

TPL::output('account/weixin_login');
}


前端文件

views\default\account\weixin_login.tpl.htm 

var RETURN_URL = '<?php if ($_GET['return_url']) { echo $this->return_url; } ?>';

修复之后,然后申述还是不通过

logclub - 物流男

我也是修复后申诉没有成功,请教有申诉成功案例吗,怎么做的?

要回复问题请先登录注册