神奇,请问这是怎么做到的。

2013-12-12 10:32:01 +08:00
 wangtao
http://www.baidu.com/s?wd=%E4%B8%83%E5%BA%A6%E4%B8%AD%E5%9B%BD

点击第一个链接,打开新页面后,然后百度搜索页面也跳转了。
6670 次点击
所在节点    程序员
27 条回复
loveshouhu
2013-12-12 10:39:23 +08:00
确实好神奇的说。。。
Moods
2013-12-12 10:40:35 +08:00
神奇的不是地方⋯
wangtao
2013-12-12 10:42:10 +08:00
好像只有 Chrome 与 Firefox 有效。。
eightii
2013-12-12 10:44:41 +08:00
哟,真的挺神奇...
coosir
2013-12-12 10:44:42 +08:00
怎么做到的?
manhere
2013-12-12 10:49:05 +08:00
GitFree
2013-12-12 10:50:52 +08:00
肯定是百度做的特殊处理
booksmith
2013-12-12 10:51:02 +08:00
应该是这样的吧
window.opener.location.href='http://www.baidu.com'
ety001
2013-12-12 10:57:52 +08:00
网站右下角的MM给网站加分不少~~~~~

www.11413.com.cn/pinpai.php?tokenid=1 这里的加密的js控制的吧,应该是js控制了父页面的跳转。
bigfei
2013-12-12 11:13:20 +08:00
解密到最后:
var _$ = ["www.baidu.com", "www.sogou.com", "www.so.com", "www.google.com.hk", "www.yahoo", "bing.com", "www.youdao.com", "www.soso.com", "360.cn", "11413.com.cn", "http://www.11413.com.cn/qeedoo/index.html", "", "Microsoft Internet Explorer"];

(function () {
var qeedoo0 = window["document"]["referrer"];
var qeedoo1 = window["document"]["URL"];
qeedoo0 = qeedoo0["toLowerCase"]();
qeedoo1 = qeedoo1["toLowerCase"]();
if (qeedoo0["indexOf"](_$[0]) != -0x1 || qeedoo0["indexOf"](_$[1]) != -0x1 || qeedoo0["indexOf"](_$[2]) != -0x1 || qeedoo0["indexOf"](_$[3]) != -0x1 || qeedoo0["indexOf"](_$[4]) != -0x1 || qeedoo0["indexOf"](_$[5]) != -0x1 || qeedoo0["indexOf"](_$[6]) != -0x1 || qeedoo0["indexOf"](_$[7]) != -0x1 || qeedoo0["indexOf"](_$[8]) != -0x1) {
var qeedoo2 = qeedoo0["replace"](/baidu.com\/s/, _$[9]);
qeedoo2 = _$[10];
if (qeedoo2 != null && qeedoo2 != _$[11]) {
if (navigator["appName"] == _$[12]) {} else {
window["opener"]["location"]["href"] = qeedoo2
}
}
}
})()
clippit
2013-12-12 11:16:43 +08:00
访问那个第一个链接的时候,会请求一个 www.11413.com.cn/pinpai.php?tokenid=1

这个JS经过了多层加密混淆,解开以后是这样的

https://gist.github.com/clippit/7922700

虽然还是挺混乱,但是可以看出使用了 window.opener.location.href

所以这个应该是属于恶意跳转吧,作弊行为
binux
2013-12-12 11:17:19 +08:00
@bigfei 这居然没有同源限制。。
Wy4q3489O1z996QO
2013-12-12 11:24:04 +08:00
@clippit 求问怎么解密这样的js代码
ccidcce32167
2013-12-12 11:25:07 +08:00
确实很诡异 我从console抓不到任何跳转的信息
jjplay
2013-12-12 11:30:10 +08:00
ccidcce32167
2013-12-12 11:37:11 +08:00
@jjplay 为何我用鼠标右键点在新标签页打开不会触发跳转? 而且我用google搜索打开也不会 为何就百度会跳?
jjplay
2013-12-12 11:40:58 +08:00
@ccidcce32167 因为 pinpai.php 是PHP文件,可以判断来路,他应该是在PHP里屏蔽了谷歌来路
luikore
2013-12-12 11:46:36 +08:00
请看 https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage?redirectlocale=en-US&redirectslug=DOM%2Fwindow.postMessage , 跨窗口跨域通信, 检查 event.origin 就可以决定允许和不允许哪个域发过来的消息.
clippit
2013-12-12 12:19:39 +08:00
@romotc 一个很简单的手动办法,就是把 eval(function(...) {...} (...)) 去掉最开始的eval,给结尾加上.toString(),整个在控制台里执行一下,就得到解密后的字符串了。如果是多层加密,多操作几次就可以了。
ccidcce32167
2013-12-12 15:31:44 +08:00
@clippit 你好厉害 这样都行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/92812

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX