首先,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 补充:
从乌云一个帖子里又摘录了点……
kyo327 | 2012-04-19 23:37
二级域名 nslookup 百度,谷歌 搜集信息
还听说有国外*** ping的方式 不过我测试貌似不行
(站 长点评:使用国外 *** ping 的方法是因为,大部分CDN提供商只针对国内市场,而对国外市场几乎是不做CDN,所以有很大的几率会直接解析到真实IP。其实这个方法根本不用上国外 ***,因为你上国外***的ping本质,就是使用国外dns(那台***服务器使用的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的思路,一个新颖并另类的方法
转载于:https://blog.51cto.com/tianshili/1640078