简述一次简书安卓端网页劫持浅析历程

你用简书有没有被劫持?

前言

每天第一次打开简书都会跳转到一个恶意网页,它以浏览器错误问题引导用户下载一个安装包。这个安装包安全性未知。另外打开网页时还会自动向剪贴板中写入一个淘口令,打开淘宝的时候会自动打开一个红包。页面跳转似乎是同一个 IP 每天只有第一次会触发,自动复制淘口令每次都会触发。然而恶意网页的域名隔一段时间会更换。简述一次简书安卓端网页劫持浅析历程

经过分析得出,此问题准确来说不算是网页劫持,而是简书自己的一个广告供应商的问题。恶意代码是直接嵌入正常业务代码的,排除了被劫持的可能。由于已经持续很长一段时间了,所以说不定是简书默许了这个行为。此外,CSDN 和豆瓣某些情况下也有这个问题,今天不做介绍。

抓包

打开 Chrome 浏览器,按 F12 打开 Chrome DevTools(Chrome 开发者工具),切换到 Network 标签中勾选 Preseve log,然后访问一个简书的网页。由于劫持只劫持安卓系统的部分机型,所以需要用开发者工具中的模拟工具,这里随意选一个安卓机型。

简述一次简书安卓端网页劫持浅析历程

很容易发现很多来自非简书的域名,在移动端也是很多这样奇奇怪怪的域名导致出现图一的那种情况。

代码简析

这不是此次目的不在PC端,在此不陈述。

但是我发现了一件很有意思的事:那就是不知道简书和百度之间有啥py交易,整个网页基本上由四类链接组成:简书、CNZZ、广告(包括了伪装的)、百度。将近1/3~1/2全是百度的链接。但这网页中没有发现百度任何字眼或者广告,这之间有啥py交易不得而知。

真机调试

很好奇为什么PC端并未触发跳转到下载浏览器 apk 那个广告,应该是浏览器真伪进行了检测,只有真正的安卓端才会弹。绕过方式也不难。Chrome 支持远程调试,我可以拿一台 Android 真机来运行 Chrome。

简述一次简书安卓端网页劫持浅析历程

在安卓机上显而易见的就是出现了这个,不管你点取消还是确认都是会跳转简述一次简书安卓端网页劫持浅析历程

由于我的手机打开了搜狗输入法的快捷翻译功能,就明确地看到了自动复制了对应的淘口令,淘口令代开就是一个红包,满多少减几分钱的那种简述一次简书安卓端网页劫持浅析历程

下面进行调试

简述一次简书安卓端网页劫持浅析历程

调试后加载部分js文件就找到了其中一部分的恶意网站简述一次简书安卓端网页劫持浅析历程

打开任意一个恶意网页五分就出现两种情况:拦截标红或者不存在(多重拦截伪装)简述一次简书安卓端网页劫持浅析历程 简述一次简书安卓端网页劫持浅析历程

其中不难发现那些劫持代码简述一次简书安卓端网页劫持浅析历程

这类代码可能对 IP 有检测,同一IP再次访问这个链接时,并没有刚才那些链接的代码。重新换一个 IP 有用,并且也可能跟时间有关,可能是每 1 个小时刷新某些东西,不太确定。

最后

关于解决和预防这里不做表述,此乃前端大佬们的工作。

总结

简书移动端页面会加载一堆 webpack bundle 其中的上述js包含广告功能,其中一个广告功能的代码加载了一个外部脚本。这个外部脚本是动态生成的,他会判断访问者的 IP,同 IP 每天第一次访问会跳转到恶意下载页面,之后不会再跳转。这个广告还接入了大量统计平台,加载一次页面就有好几百的请求。还另外一个广告也引入了外部代码,其中嵌入了向剪贴板中写入淘口令的指令。

希望简书尽快解决这个问题吧。(会不会简书内部已知,并且默许呢?这个不得而知)

欢迎技术大佬指导和交流!

本文发布者:肃由,转载请注明出处:https://www.htzyxyj.com/%e6%8a%80%e6%9c%af%e8%b5%84%e6%ba%90/android/1076.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注