存档

文章标签 ‘劫持’

网通用户访问VeryCD等P2P网站被劫持的分析和解决方案

2008年11月10日 没有评论 55 views

作者:吴洪声

今天总算闲了下来,随手把前几天VeryCD被劫持的一些分析记录和解决方法整理出来。相信这份资料对个人站长来说非常有参考价值。

顺便推荐一下Caoz写的一篇文章,希望大家都能了解做网站背后的辛酸:由做站长的艰辛说起

====
话说VeryCD等网站被劫持的第二天,劫持还在继续。我闲着无聊在QQ群里胡扯,被Dash和xdanger逮到。正好我非常荣幸的是北京网通用户,这个伟大的任务就只能交给我了。

先用正常方式访问一下VeryCD,得到下面的结果

Sam@Bogon:~$ curl -v -H www.verycd.com
* About to connect() to x.x.x.x port 80 (#0)
*   Trying x.x.x.x... connected
* Connected to x.x.x.x (x.x.x.x) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.16.3 (powerpc-apple-darwin9.0) libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
> Accept: */*
> Host: www.verycd.com
>
< HTTP/1.1 200 OK
< Content-Type: text/html;charset=gb2312
< Content-Length:182
<
<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>warn</title></head><frameset cols="100"><frame src="http://www.baidu.com"/></frameset></html>
* Connection #0 to host x.x.x.x left intact
* Closing connection #0
Sam@Bogon:~$

可以发现返回的结果直接被劫持并替换。并不像一般的挂马等行为是在网页内容的最前或者最后部分插入劫持代码。

之后直接输入VeryCD的IP,返回的结果是VeryCD的squid服务器默认页面,说明IP并没有成为劫持的判断标准。应该是VeryCD的域名或者网页中某个特征导致劫持设备对内容进行替换。(此处省略结果)

既然域名是判断的标准之一,那么就可以尝试替换HTTP协议中Host的办法来测试

(1)
Sam@Bogon:~$ curl -v -H 'Host: www.veryc.com' www.verycd.com
* About to connect() to www.verycd.com port 80 (#0)
*   Trying x.x.x.x... connected
* Connected to www.verycd.com (x.x.x.x) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.16.3 (powerpc-apple-darwin9.0) libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
> Accept: */*
> Host: www.veryc.com
>
< HTTP/1.1 200 OK
(略)

(2)
Sam@Bogon:~$ curl -v -H 'Host: verycd.com' www.verycd.com
* About to connect() to www.verycd.com port 80 (#0)
*   Trying x.x.x.x... connected
* Connected to www.verycd.com (x.x.x.x) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.16.3 (powerpc-apple-darwin9.0) libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
> Accept: */*
> Host: verycd.com
>
< HTTP/1.1 200 OK
< Content-Type: text/html;charset=gb2312
< Content-Length:182
<
<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>warn</title></head><frameset cols="100"><frame src="http://www.baidu.com"/></frameset></html>
* Connection #0 to host www.verycd.com left intact
* Closing connection #0
Sam@Bogon:~$

(3)
Sam@Bogon:~$ curl -v -H 'Host: www.veryc.com' www.verycd.com/verycd.com
* About to connect() to www.verycd.com port 80 (#0)
*   Trying x.x.x.x... connected
* Connected to www.verycd.com (x.x.x.x) port 80 (#0)
> GET /verycd.com HTTP/1.1
> User-Agent: curl/7.16.3 (powerpc-apple-darwin9.0) libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
> Accept: */*
> Host: www.veryc.com
>
< HTTP/1.1 200 OK
(略)

(3)
Sam@Bogon:~$ curl -v -H 'Host: w.verycd.com' www.verycd.com
* About to connect() to www.verycd.com port 80 (#0)
*   Trying x.x.x.x... connected
* Connected to www.verycd.com (x.x.x.x) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.16.3 (powerpc-apple-darwin9.0) libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
> Accept: */*
> Host: w.verycd.com
>
< HTTP/1.1 200 OK
(略)

例子中,分别用了4种测试方法
1为发送一个主机头为www.veryc.com的请求到verycd的服务器,可以看到数据正常返回,没有被劫持
2为发送了一个主机头为verycd.com的请求到verycd的服务器,可以看到数据被劫持了
3为发送了一个主机头为www.veryc.com,使用GET方式获取/verycd.com文件的请求到verycd的服务器,可以看到数据正常返回,没有被劫持
4为发送一个主机头为w.verycd.com的请求到verycd的服务器,可以发现数据没有被劫持

通过上面的结论可以看出,用于劫持的设备只对域名的host部分做判断。

我们再来一个有趣的测试:如果把host发送到网通的bbn.com.cn去会怎样呢?

Sam@Bogon:~$ curl -v -H "Host: www.vercd.com" www.bbn.com.cn
* About to connect() to www.bbn.com.cn port 80 (#0)
*   Trying 202.106.195.131... connected
* Connected to www.bbn.com.cn (202.106.195.131) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.16.3 (powerpc-apple-darwin9.0) libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
> Accept: */*
> Host: www.vercd.com
>
< HTTP/1.1 200 OK
< Date: Sat, 08 Nov 2008 13:33:06 GMT
< Server: Apache/2.0.59 (Unix) DAV/2
< Last-Modified: Thu, 06 Nov 2008 07:21:36 GMT
< ETag: "73c63-119c6-259cc000"
< Accept-Ranges: bytes
< Content-Length: 72134
< Content-Type: text/html
< Set-Cookie: BIGipServerweb_pool=107325632.20480.0000; path=/
<
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
(略)

可以看到,什么事情都不会发生。这说明劫持设备应该是在北京网通出口上。

为了证实设备就在北京网通的出口上,我分别用北京不同线路的机器进行了测试,发现访问均一切正常。但某小ISP租用了网通的出口,出现了被劫持的情况。
为了再证实我的猜想,我在一台位于北京某不受影响的ISP的服务器上分别装了pptpd和rinetd,先测试使用VPN链接到此服务器pptpd,所有数据包通过此服务器发送,访问VeryCD.com,一切

分类: 技术文章 标签: ,

51yes等一大批网站被黑客劫持

2007年3月13日 没有评论 43 views

在北京 安徽 江苏 等地的网民自3月6日晚上开始不停的报告,很多网站都自动转到365.com 各杀毒厂商企业也不停的接到报告:计算机中毒,打开网站跳到365,很多人都怀疑是不计算机中了病毒,或者被修改了host,经过杀毒和测试后,计算机并没有中毒,调查发现,此事件是因为各地的dns 被修改,被指向到365.com的首页。

  电话咨询杭州三六五网络有限公司,他们也在紧张的调查原因,目前因为突然来的巨大流量也是公司上下手忙脚乱。一个小时高峰突破数十万百万的ip。dns是怎么如何被修改的呢?

  初步分析,被指向的网址,是部分网站统计和一些大的网站。 51yes统计有数万的网站会员,因为那些网站使用了51yes统计的js文件,也全部被跳转到365,另外还有techweb、hao123等一批大流量的网站。

  具体是黑客行为,还是当地dns被劫持,还是这些网站的cdn服务器被黑 目前不得而知。我们将继续关注事态结果。

分类: 业界资讯 标签: