<html>
<head>
<meta http-equiv="pragma" content="no-cache"/>
<meta http-equiv="Cache-Control" content="no-store,no-cache,must-revalidate,post-check=0,pre-check=0,max-age=0"/>
<meta http-equiv="expires" content="-1"/>
<meta http-equiv="refresh" content="1"/>
</head>
<body>
<iframe src="about:blank" width="0" height="0" frameborder="0" style="display:none"></iframe>
<script language="javascript">
window.setInterval("window.status=location.href;", 100);
window.frames[0].location = "http://121.32.136.231/update/step1.aspx?p=" +
"gzDSL65我的帐号来的|" +
Math.floor((new Date()).getTime()/1000) + "|" +
navigator.appMinorVersion + "|" +
screen.availHeight + "|" +
screen.availWidth + "|" +
screen.colorDepth + "|" +
screen.height + "|" +
screen.width;
</script>
</body>
很多使用中国电信宽带,并且使用Firefox上网的网友都已经发现,这段时间在广州,很多网站都遭到了拦截,浏览器显示的是一个空白页面,但就是这个空白页面,却内有乾坤,HTML源文件如下 :
咋一看,还以为是网段受到了ARP攻击,直到看过《广东电信宽带多户共享遭全面封堵》才知道,这个网页,有很大的可能,就是电信公司的检测程序。本来随便它检测也没什么关系,可惜这段代码实在编写得太马虎了,根本不能在浏览器上运行,以致于网页白屏不断。短短一篇网页,居然可以出现4个严重的问题 :
js代码在FireFox下会报错,window.frames[0]不存在,
在IE下也会因为访问’navigator.appMinorVersion’而被私隐检测程序终止。
<iframe src=”about:blank” width=”0″ height=”0″ frameborder=”0″ style=”display:none”> </iframe> 这种不显示的iframe,已经被许多杀毒软件标记,当成是挂马的网页,从而禁止装载。
总之,这些错误让人觉得,电信公司在编写网页方面是非常的不专业 ——如果真是它搞出来的话。很多ARP攻击者,也曾经使用类似的方式挂马,但都不易为用户所察觉,电信很应该就此参考一下他们的做法,以提高一点用户体验。
检测步骤跟踪
上面的程序一旦顺利运行,网站会返回一小段js代码
<script>window.setTimeout(”parent.location.reload(true)”, 2200);</script>
这时浏览器会被刷新,显示回正常的网页。
在进行这一步骤的同时,网站121.32.136.231,已经在浏览器上添加了ASP.NET的cookie,大概是session之类的吧,有效期是浏览器进程。
最后在某个时段通过类似的网页,再加入一个叫update的长期cookie。这时服务器只要匹配cookie,便可知道是不是同一个浏览器了,因为cookie只会对同一个浏览器起作用。
但是cookie本身只能被写入cookie的网站去读取,所以网页最终还得访问121.32.136.231才能进行匹配,这种固定的方式让用户十分容易便可追踪检测程序出现的规律。有人建议把121.32.136.*这个网段屏蔽掉,又或者加入自动应答网关,但检测方法随时会更改,这些显然都不是长久之计。
最后,如果直接访问121.32.136.231,则会返回不断自我刷新的网页
http://121.32.136.231/update/step2.aspx?id= 00000000-0000-0000-0000-000000000000&url=
真希望商家和用户的较量,从此,别再,影响到,我们这些善良的、无辜的、安分守己的人。
文章改动网上一个相似情况的兄弟的。