一种猥琐的钓鱼方法
1980年12月8日 约翰.列侬被一个歌迷射六枪,歌迷坐等警察,被带走时朝列侬吐痰,说:你变了。
是的,你变了。我一开始的时候是信任你的,但是当我离开的时候,你已经变了,而我却不知道,我还像以前一样信任你,结果被你钓鱼了!
现在还原一下游戏步骤:
# STEP1
假设你在百度里面搜索 上海破碎机生产厂家:上海破碎机生产厂家
# STEP2
第一页大约有十个结果,假设你碰巧点击了www.ksht168.com这个网站。
# STEP3
现在,你再回去百度搜索页面,随便点击一个连接。是的。很奇怪。正常情况下是弹出对话框,因为页面已经被注入了JS
注意上面仅仅是演示,真正钓鱼的时候,我会做一个肉眼几乎无法区分的页面。想做什么,需要的就仅仅是想象力了。
# How?
一切都是由parent.window.opener.location引起的。浏览器来源页面的url被篡改,就导致了这种问题。在这个示例中,index.html中有这样一段js:
if(document.referrer.indexOf("http://www.baidu.com")==0){
parent.window.opener.location="/test.php?url="+document.referrer;
}
实际上把原来的页面跳到了另外一个,而新页面和老页面一样,一般人并没有注意上面URL地址栏。所以很容易被欺骗。
在上面的例子中,假如用户没有发现异常,在页面上的信息,会继承用户对百度的信任,比如你说百度推荐xxx,用户很容易相信,哦,这是百度推荐的,因为他并不知道,他其实已经不再baidu.com了。
类似的欺骗,比如,我在一个你非常信任的网站上留下一个连接,当你点击以后,原来的页面已被篡改,你关掉打开的页面,想回到原来的页面,这时候,我就提示你网络有问题、账户异常等等,诱导你输入敏感信息,实现钓鱼。其他猥琐用法,欢迎讨论。
# 如何破?
浏览器的问题。估计等用得多了,浏览器会有限制。比如 Google chrome a:visited background image not working
另外,parent.window.opener.location并不是在所有的浏览器上都能工作,比如在ie8上,会提示:
parent.window.opener.location 很早很早以前就有人用来劫持搜索引擎了,但是貌似还没见有人用来钓鱼,今天偶然想到的钓鱼方法,更多猥琐的应用,请不吝赐教。