[原创]从程序员角度分析安徽电信HTTP劫持的无耻行径,以及修改Hosts文件,使用OPENDNS无效情况下的解决方案


问题描述

新年刚过,我就发现使用的安徽电信E9套餐有HTTP劫持的情况(网上有人说DNS劫持,有人说网页劫持),我想大致就是这种情况。

 

重现非常简单,在地址栏输入一些不存在的网址(比如http: //www.dsjkjdsafjklasfewrewre.com/)或者国内无法访问的网址(比如http://www.facebook.com/),就会跳转到电信的广告页面,并且每次的广告页面还不一样,比如有:

 

 

 

这种每次都随机的做法可真是无耻。有时候干脆直接跳转到 3158.cn 或者 淘宝的首页,更是无耻之极。

 

尝试解决问题

在确定不是电脑问题,不是操作系统问题(WindowsXPWindows 7 Mac OS),不是中毒问题,不是浏览器问题(在所有浏览器IEFirefoxSafariChrome…)后,我拨通了10000号进行投诉。

 

安徽电信的工作人员上门查看后也不知道什么原因,在我指出是可能是电信的DNS服务器的问题时,工作人员居然表示不知道这回事,说是要上报上级领导,至今无果。

 

我对这一解释真的很诧异,网上有很多关于这个问题的投诉,并且似乎从几年之前就已经存在,而他们居然不知道,下面我简单列几篇对臭名昭著的IP地址(61.132.221.146)的投诉:

http://www.315ts.net/archive/tousu/2011/0219/1078852.shtml

http://bbs.360.cn/4036159/13707592.html

http://www.tianya.cn/publicforum/content/it/1/565721.shtml

http://www.huangwei.me/blog/2010/02/09/anti-telecom-ad/

……

 

无奈之下,我只好分别在下面各个地方进行了投诉,还在等待反馈:

1.      中国电信在线投诉: http://tousu.ct10000.com/

2.      315消费电子投诉网:http://www.315ts.net/

3.      工信部电信用户申诉平台:http://www.chinatcc.gov.cn:8080/cmsadmin/shouli/shensu.jsp

 

 

从程序员角度看问题

作为一名程序员,在遇到这种问题时,是不能袖手旁观的。我们完全可以从HTTP请求分析出安徽电信在到底在哪个地方做了手脚。

 

这里我使用Filddler来监视所有的HTTP请求响应。

1.打开IE浏览器,在地址栏输入http://www.facebook.com/,这次是跳转到http://61.132.221.146/index_o.html,我们看Filddler的监控面板

 

很明确,这里是在请求facebook.com时,返回的HTTP状态吗是302,也就是URL重定向。我们在写网站时,遇到Session超时时重定向到登录页面也是这样做的。我们来仔细看下这个HTTP请求的响应代码:

 

问题的关键时,facebook.com不会把自己的页面重定向到电信的广告页面。那是谁做的?很明显了,是给我提供ISP服务的安徽电信了,无耻。

 

2. 在地址栏输入不存在的网址,比如http://www.uewkhdshfiueyhfsahd.com /,这次是跳到电信的114广告页面

 

这次不是302跳转了,而是返回的200,一个不存在的网址怎么会正常返回呢,我们来看下返回的内容:

原来这次是通过JavaScript跳转了,无耻。

 

3. 再次在地址栏输入不存在的网址,比如http://www.uewkhdshfiueyhfsahd.com /,这次是跳到2345.com广告页面

 

这次的跳转有点复杂,首先是uwoieurewuorwoerwerwer.com 跳转到 61.191.206.4(这个也是电信的服务器),然后跳转到61.191.206.4:81 /2345-3.html。我们来看下这一过程:

 

 

 

4.      打开一个国外网站dailyjs.com,因为其中通过iframe嵌入了facebook.com的页面,所以这个iframe也被重定向到61.132.221.146这个电信的广告页面。

 

我们通过IEDeveloper Tools来看下这个iframe中有啥东西:

 

facebook.com 居然返回国内的广告页面,我只能说两个字了:无耻!

 

 

5.      最让人受不了的是这种情况,我正常的打开ajaxian.com,整个页面都已经出来了,但是突然整个页面跳转到3158.cn。无耻!!!

我把这次的完整HTTP请求响应都记下来了,因为其中的请求太多,还没来的及分析是怎么跳转了。有兴趣的网友可以下载这个文件,然后用Filddler打开,帮忙分析下怎么跳转的。

 

 

解决方案

我尝试了很多方法都不行,比如修改Hosts,使用GoogleDNS或者OpenDNS。网上对这种方法有详细的描述:

http://www.williamlong.info/archives/1101.html

http://www.cnbeta.com/articles/23851.htm

http://bbs.kafan.cn/thread-180388-1-1.html

http://www.ytbbs.com/thread-1911401-1-1.html

……

 

不过这种方法在我这里都不行,貌似这已经不是简单的DNS劫持了,下面的文章对我的启发很大:

http://www.huangwei.me/blog/2010/02/09/anti-telecom-ad/

http://wenwen.soso.com/z/q253938024.htm

 

综合所有看到的文章,我觉得可以通过如下三种种途径来解决这个问题。

 

1.      将投诉进行到底。

 

2.      使用Firefox插件(BlockSite)和IE的受限站点设置

 

当访问一个不存在的网址时的效果:

 

IE下在“工具”->Internet选项中设置:

 

 

3.      修改本机路由表。

参考如下两个文章:

http://www.huangwei.me/blog/2010/02/09/anti-telecom-ad/

 

步骤:

1.      打开命令行窗口

2.      依次输入如下命令:

route -p add 61.132.221.146 mask 255.255.255.255 192.168.1.33

route -p add 60.169.12.74 mask 255.255.255.255 192.168.1.33

route -p add 61.191.206.4 mask 255.255.255.255 192.168.1.33

3.      route print 查看刚才的命令是否成功。

 

附:安徽电信3个广告页面的IP地址

1.      61.132.221.146

2.      60.169.12.74

3.      61.191.206.4

 

 

强烈建议

如果你也曾遇到这种情况,或者正在经历这个过程,请把你的网络提供商,以及跳转的广告页面地址贴出来,我过段时间会弄一个汇总页面。

 

我会逐步更新这个事情的处理结果。

 

 

[原创]从程序员角度分析安徽电信HTTP劫持的无耻行径 – 之深度分析

 

 

 

 

作者: 三生石上 发表于 2011-02-19 19:07 原文链接

评论: 15 查看评论 发表评论

最新新闻:
· Google Apps Shell Interface 让不会编码的人也能玩 API(2011-02-20 13:26)
· 乔布斯尚有心拆房,杰克林公馆终成废墟(2011-02-20 12:49)
· 三星Galaxy S 4G 23日上市 合约价200美元(2011-02-20 12:44)
· 淘宝进入物流市场:传统企业有危机也有商机(2011-02-20 12:42)
· 新版MacBook Pro或支持Light Peak高速连接(2011-02-20 12:41)

编辑推荐:PM与工程师

网站导航:博客园首页  我的园子  新闻  闪存  小组  博问  知识库

你可能感兴趣的:(程序员,分析,角度)