首先,CDN、负载均衡、反向代理还分为很多层,有时查出来的是最外层的 CDN 服务器群,真实的机器是不对外开放的,类似这样的:

用户  →   CDN 网络   →  一台或多台真实机器     ↗  CDN Server 1  ↘用户  →  CDN Server 2  →  真实机器    ↘  CDN Server N  ↗-------------------------------------------------------- 用户  →   CDN 网络   →  一台或多台反向代理   →  一台或多台真实机器     ↗  CDN Server 1  ↘用户  →  CDN Server 2  →  Reverse Proxy Server  →  真实机器    ↘  CDN Server N  ↗

具体根据网络的负载需求,CDN 服务器的数量以及分级层数是不一定的。

如果是这样的话,除非日一台CDN服务器看记录或者日进CDN供应商控制系统或后台,才能找到真实IP,但是那些CDN服务器配置完全一样,应该很难搞。

(这 些CDN服务器不止代理的这一家网站,现在都是同时代理很多家网站,这就可以解释你旁站查询出来很多不相干的网站都在同一个IP地址,这是CDN服务器供 应商节省成本的一种方案,一台CDN同时代理多家网站,CDN供应商根据你支付金额的多少,决定使用多少台CDN服务器。)

(这 些CDN服务器一般都在高防机房,拥有很大的带宽,并且大多数CDN运营商还拥有云防火墙技术,什么叫云防火墙?即:任意一台服务器检测到DDOS攻击 后,会向所有服务器通告这些攻击源IP,然后所有这些服务器都同时屏蔽这些地址,以实现整个网络屏蔽DDOS的目的,这些服务器组成了一个很强力的抗 DDOS网络,这是目前对付DDOS攻击,比较有效的方案之一。)

(再补充一点经验,这些CDN服务器还根据你提交的 HTTP HOST 头(也就是域名)返回不一样的系统信息,更有甚者,只要你 HTTP HOST 头不正确(不是它提供服务的域名),直接掐断连接,不返回任何数据,你就得不到任何有效信息,如果你使用“长安刺客 - 旁注杀手 v1.2 版 + CDN 终结者 v1.1”的话,那么需要在 CDN 终结者界面勾选特殊模式,然后再刺探网络构架,有时候会有惊喜哟……)

还有另外一种:

用户  →  多台实时同步的缓存服务器与真实机器    ↗  Cache Server 1用户  →  Cache Server 2    ↘  Cache Server N
    ↘  真实机器

如果是这种的话,很容易就可以找出来真实服务器的IP地址,因为他们 HTTP Banner 等信息是完全不一样的,用“长安刺客 - 旁注杀手”一眼就看出来了。

还有另外几种 CDN、负载均衡、反向代理 等网络构架:

用户  →   负载均衡   →  服务器群               ↗  Cache Server 1用户  →  Load Balance  →  Cache Server 2               ↘  Cache Server N--------------------------------------------------------------用户  →   反向代理类服务器   →  一台或多台真实机器                   ↗  真实机器1用户  →  Reverse Proxy Server  →  真实机器2                   ↘  真实机器N

再结合 xxbing 提供的方法:

关于探测主站真实IP,我一般先查一下分站IP,有一种情况是,主站采用了CDN,分站没有用。

比如 bbs.xxx.com、vip.xxx.com、pay.xxx.com 都是 111.111.111.x 段的,那么主站也很有可能是 111.111.111.x 段的。扫一下这个段的80吧。

这确实是个好方法,针对国内的大站,多分玉米的很实用。但是现在很多国外站各种分域名ping出来和主站都是一个IP。

可以暴力跑一下2级域名。什么 blog.xxx.com、admin.xxx.com、root.xxx.com。反正4位英文以内的。。

2012-4-20 14:21:05 补充:

从乌云一个帖子里又摘录了点……

地址:如何快速查找cdn后面的真实ip

 

kyo327 | 2012-04-19 23:37

二级域名 nslookup 百度,谷歌 搜集信息

还听说有国外vpn ping的方式 不过我测试貌似不行

(站 长点评:使用国外 vpn ping 的方法是因为,大部分CDN提供商只针对国内市场,而对国外市场几乎是不做CDN,所以有很大的几率会直接解析到真实IP。其实这个方法根本不用上国外 vpn,因为你上国外vpn的ping本质,就是使用国外dns(那台vpn服务器使用的dns)查询域名而已,所以只需要:nslookup lcx.cc 国外dns,就行了,例如:nslookup lcx.cc 8.8.8.8,提示:你要找冷门国外DNS才行,像谷歌的DNS,国内用的人越来越多了,很多CDN提供商都把谷歌DNS作为国内市场之一,所以,你查 到的结果会和国内差不了多少……)

 

请叫我大神 | 2012-04-19 23:42

其实可以调查下目标的公司所在地,分析出公司最可能有自己机房的地方,这种分析对大公司比较靠谱。找个那个地区的机器再测试下

(站 长评论:且不说这个可能性有多大,首先一些中小型公司肯定没有自己的机房,网站服务器天南地北的机房都有,有些还是国外的,大型公司也不一定有自己的机 房,有的话,也可能在任何地方,你这种方法也许对百度、谷歌这种大公司可能有点作用,可是你别忘了,他们有多少机房?每个机房中有多少服务器?你简直是在 大海捞针,你还不如挨个扫该地区80端口来得快,很明显,哥们,你太能意淫了!完全没实践过……)

 

请叫我大神 | 2012-04-19 23:44

@kyo327,你说的还是有些模糊,每个方向都可以细化,也会有一些技巧,这个可以分享下

 

xsser (白日放歌需纵酒) | 2012-04-20 00:13

1 历史记录 2 phpinfo 3 经常用ping xxx.com代替ping www.xxx.com

(站长评论:Good,好思路……)

 

蟋蟀哥哥 | 2012-04-20 00:36

@kyo327 @xsser 楼上的都说的都对,基本把我想到的办法都说了。哈哈.如果是我的话,肯定会先ping domain.com

然后ping子域,再nslookup.

 

GaRY | 2012-04-20 02:12

其实,一般mail.xxx.com之类的办公域名,都不会交给cdn。但是有可能交给gmail或者qmail。但是列举更多的类似办公域名,基本也能猜出八九不离十了

(站长评论:这个本文里有讲过,原理很简单,主站才做CDN,分站、内部域名等傻子才烧钱做CDN啊,所以都是真实IP,这个IP的C段中十有八九就存在主站的服务器,你只需要使用特定的扫描器(可以指定域名的),挨个扫描一下80端口就行了。)

 

only_guest (www.guoke.ca) | 2012-04-20 03:25

楼上说的差不多了.我再来补充一点.

可以社工统计的帐号.比如51啦..而且有时候是没密码的..

大站不行,但我经常搞一些小站的时候可以看到比如说使用IDC分配的二级域名访问的记录..

中率不高.实在没辙可以试试.

然后就是剑心说的phpinfo

这个中率很高.很多大站都喜欢放个phpinfo

看你路径字典强度.很容易跑出来的.

 

Eric | 2012-04-20 10:00

ping xxx.com一般都会是真实IP,因为了解到现有很多CDN厂商基本只要求把www.xxx.com cname到cdn主服务器上去。

(站长评论:这个说过很多次,www.lcx.cc 和 lcx.cc 的解析是两条独立的记录,很多公司都会只给 www.lcx.cc 做 CDN,很少管 lcx.cc,所以嘛……)

 

请叫我大神 | 2012-04-20 15:41

再说一个,小网站从无CDN到有CDN,会有一个IP变化的过程,netcraft.com会记录下来,也可以做参考:http://toolbar.netcraft.com/site_report?url=www.xxx.net

(站长评论:仍然是看解析记录)

2012-7-31 18:56:14 补充:

蟋蟀哥哥在绕过CDN的思路提到:

为了庆祝成都第一次线下沙龙举办成功,特地把这个想法发出来。给大家一个绕过cdn的思路。

下面是以前讨论这个的帖子:http://zone.wooyun.org/content/79

.....................帅气的分割线............................

其实这个思路来自于nc反弹,木马方向连接从而绕过防火墙....

...我们直接访问有cdn的域名的时候,肯定要先经过cdn这一层...如果我们让服务器连接我们呢??不就能快速得到服务器真实IP了么??

怎么让服务器主动联系我们呢???

。。 我首先想到的email,有的服务器本地自带sendmail...  注册之后,会主动发一封邮件给我们。。。 好吧。。打开邮件的源代码。。 你就能看到服务器的真实Ip了。。。有的大型互联网网站会有自己的Mailserver...应该也是处在一个网段吧??  那个网段打开80的一个一个试。。。哈哈。。

如果对方使用的是公用的smtp邮件服务器。。就没办法鸟。。。本文提供的是一个思路。。。

除了mail。。。还有什么能让服务器主动连接我们呢??? 其实在HTML5中新增了一个push的功能。。也就是说服务器主动发送消息给浏览器。。。 由于没有找到使用这个的网站。。所以只是一个想法。。

希望大家提供更多的思路。。。 谢谢鸟。。。

具体内容见:绕过CDN查找真实IP的思路,一个新颖并另类的方法