今天在thehackernews上看到一篇讲黑客利用Google Tag Manager外挂恶意js脚本的文章(https://thehackernews.com/2025/02/hackers-exploit-google-tag-manager-to.html),然后顺带搜了一下,发现利用GTM加载js的攻击早就有了(https://www.recordedfuture.com/research/threat-actors-continue-to-abuse-google-tag-manager-for-payment-card-e-skimming),这篇里面甚至列了很多样本。
那么GTM怎样来使用呢,下面就来简单尝试一下利用GTM来执行自定义的js脚本。
GTM创建demo
- 首先来到GTM控制台,在account创建账号,然后创建容器。
- 进入容器之后添加一个新的tag,选择custom html


- 添加自定义的js代码,使用script标签

- 添加好之后就能在tags列中看见了

- 点右上角的submit发布,再点开旁边的tag id就能看到给页面添加GTM的代码了

- 把tag id拼接到https://www.googletagmanager.com/gtm.js?id= 后面在浏览器中打开,就能看到完整的js,而我们添加进去的自定义js就在vtp_html属性中

- 把第5步中的代码添加到网站的html页面中,就能看到自定义js代码被执行了

总结
其实就一点,相较于从别的域名加载js,使用类似GTM这种可信域名加载恶意js更容易绕过安全检测(可能一看是Google的域名就跳过了),同时也提醒我们不能简单的按照域名白名单放行安全检查。
最后,用Gemini的deep research扒了一下相关资料,链接放在下面
https://gemini.google.com/share/a0b63a35f98a