绕过 CDN 取源网站服务器 IP 思路汇总

Table of Contents

更新日期:2017-05-04

当说要攻击一个网站时,更多指的是攻击网站对应的那台服务器,所以要准确知道对应的服务器是非常重要的。现在很多网站都采用了 CDN 架构,理想情况下,不同地域访问网站时,会优先命中最优的 CDN 节点,这也达到隐藏真实服务器 IP 的目的。

绕过 CDN 取源站 IP 的思路有很多,我根据经验总结如下:

1 探针程序

探针程序指一些收集服务器信息的组件,一些站长和开发者为了方便,会在自己网站上放探针程序。

最简单的就是调用了 phpinfo() 函数的页面,常见的路径比如:

/test.php
/phpinfo.php

等等。

探针程序页面多数都泄露了源服务器 IP 地址。

2 IP 段扫描

假设一个网站拥有备案号,它所在服务器极可能就在国内机房:

(1) 对国内的 IP 段进行 80 端口扫描 (2) 对开放 80 端口的 IP 设置 HTTP Host 头再次扫描 (3) 最后对扫描结果进行过滤筛选

不足之处就是成本太高。

3 其他协议泄露源 IP

CDN 多数用来为网页、视频流加速,如果服务器还提供其他协议的服务,也可能导致源服务器 IP 泄露。例:

1、网站有发送邮件功能(找回密码、注册激活验证等),从邮件头内容中可以看到源 IP

2、网站公示提供了 FTP 等服务

4 源码泄露源 IP

1、有很多外包做的网站为了省事,页面中有些超链接就是用的源服务 IP。常见于地方政府、小机构网站

2、GitHub 中找到泄露的配置文件,里面可能存在源 IP

5 其他子域

一些网站只会把 www 域使用 CNAME 方式接入 CDN,而忽略了其他子域。

6 查询域名绑定 IP 历史

使用 toolbar.netcraft.com 可以看到域名 IP 变更的历史,可能会找到在用 CDN 之前的 IP,如:

http://toolbar.netcraft.com/site_report

7 让网站服务器主动发出请求

1、网站存在 SSRF 漏洞

2、网站有主动发出请求的功能,如:抓取页面、扫描、RSS 订阅

8 让网站回源

这是黑产攻击常用的方法,对网站 DDoS/CC 攻击让网站被迫回源(即访问经过 CDN 了)。因为一般 CDN 厂商都有流量限制,有些厂商会在流量耗尽时让网站回源。

真正要隐藏好源服务器还是比较困难,最好将源服务器限制 IP 的访问,只允许 CDN 节点的 HTTP 请求到服务器。

9 利用其他扫描数据

比如利用 ZoomEye、Shodan 的检索结果偶尔也能找到网站原始服务器 IP。

另外https://www.scans.io/收集了一些常用端口数据,比如把80端口(全网扫描)的数据下载回来,然后从这些数据中也可能找到。

但这里有个局限:网站必须没绑定虚拟主机,能直接通过 IP 访问才行,否则检索到的数据就是 HTTP 400 错误。