绕过 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,如:
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 错误。