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