最近发现自己的博客偶现第一次访问的时候,总是会被跳转到一个外部的广告站点:
遂感觉疑惑,但当时刚好发了一个 itch 的文章,以为是 itch 提供的 widget 被劫持,移除 widget 后就没有继续检查了。
最近两天发现,始终有用户反馈会跳转到外部站点,所以花了点时间自查了一下站点的代码,最后被我发现,在页脚的地方会注入一个拉取远程配置后,执行 eval 的代码。
但翻查了半天代码我都没有找到这个 JS 是从哪里注入的,就想着要不把插件一个一个禁用掉,看看能不能定位到问题。
实践出真知,一个一个的禁用插件后,居然被我找到了这个插件,关闭后就不会再注入代码了。
外观看起来完全没问题,但是点击作者&官网实际是打不开的。
虽然解决了问题,但我还是想知道这个插件的原理是啥,所以在后台翻查了一下这个插件的源代码。意料之外的是,实现的相当简单,只是对控制站点的 URL 做了 hex 混淆,并且检查用户是否已登录,登录了就不注入代码了,其余都是直接注入 JS 代码,请求链接,有数据就 eval 执行一下。