如何绕过CDN寻找真实IP

一、什么是CDN?

CDN(Content Delivery Network,内容分发网络)是一组分布在不同地理位置的服务器,其目的是更有效地向用户分发互联网内容。通过缓存内容(如网页、图片、视频和其他类型的网络数据)在多个服务器上,并根据每个用户的地理位置将请求路由至最近的服务器。CDN可以显著减少延迟,加快加载速度,并提高网站的整体性能和可靠性。这不仅改善了用户体验,还有助于减轻原始服务器的负载,并提高网站在面对大流量时的稳定性。

二、CDN的工作原理是什么?

CDN的工作原理可以大致分为以下几个步骤:

  1. 部署和缓存

    CDN服务提供商会在全球不同的地理位置建立并维护一系列的数据中心。这些数据中心内部部署有称为缓存服务器的设备,负责存储源站内容的副本。当网站所有者使用CDN服务时,CDN会将网站的内容(如HTML页面、图片、视频、脚本等)复制并存储到这些缓存服务器上。

  2. DNS解析

    当用户尝试访问使用CDN服务的网站时,他们的浏览器首先会发起一个DNS请求。DNS请求被解析到CDN供应商的DNS服务器,该服务器负责指导请求到最合适的缓存服务器。

  3. 最佳节点选择

    CDN的DNS服务器会运用智能算法来选择最佳的缓存服务器节点,以便为用户提供内容。节点选择是基于一系列因素做出的,包括用户的地理位置、服务器的当前负载、网络拥塞情况、服务器的健康状况以及可能的成本考虑。

  4. 内容传输

    一旦确定了最佳节点,用户的请求就会被重定向到该节点。如果所请求的内容在缓存服务器上是最新的,CDN节点会直接将内容返回给用户。如果内容已经过期或不在缓存中,CDN节点将会从源服务器或另一个较近的缓存节点获取最新内容,再传递给用户。

  5. 内容更新和维护

    为了确保缓存的内容是最新的,CDN会定期检查源站的内容更新。一旦发现源站内容有变化,CDN会更新缓存服务器上的内容副本。此外,CDN还会不断监控全球网络状况和使用模式,以调整缓存策略和优化数据路由。

三、CDN在网路安全中的作用?

1. 深入了解目标架构

通过绕过CDN获取到服务器的真实IP地址,可以更深入地了解目标站点的网络架构。这有助于发现潜在的安全漏洞,例如配置错误或不安全的服务暴露在外网中。还可以分析防火墙规则、路由路径等信息,为后续攻击提供参考依据。

2. 发现未被保护的资产

一些企业在部署了CDN之后,并没有对所有相关联的系统进行全面的安全加固。此时如果能够成功绕过CDN并找到其背后的真实服务器,则可能会遇到那些尚未受到良好保护的内部资源,如数据库服务器、文件共享服务等。这些未受充分保护的资产往往存在较高的风险,容易成为攻击者入侵的目标。

3. 绕过WAF防护措施

很多企业会在CDN层面上集成Web应用防火墙(WAF),用以抵御恶意流量和SQL注入等常见攻击手段。当绕过了CDN直接与后端服务器建立连接时,就有可能绕开了WAF的检测机制。对于经验丰富的渗透测试员来说,这是一个很好的机会去测试应用程序本身的安全性,而无需担心被前端防护设备所阻挡。

4. 测试灾备方案的有效性

为了确保业务连续性,许多大型网站都会构建异地多活数据中心以及相应的灾备切换机制。在这种情况下,绕过CDN获得实际服务器位置可以帮助验证灾难恢复计划是否按预期工作。例如,在模拟故障转移的过程中,观察请求是否能顺利转发给备用节点,以及整个过程所需的时间等指标。

5. 识别DDoS防御策略

当遭受分布式拒绝服务(DDoS)攻击时,很多公司会依靠CDN服务商提供的抗D服务来缓解压力。如果能够确定源站IP,则可进一步研究对方采取的具体应对措施,包括但不限于流量清洗、限速、黑白名单设置等方面的内容。这对于评估现有防御体系的效果以及提出改进建议具有重要意义。

四、如何判断一个网站是否使用CDN?

在渗透实战中,一个网站的域名可能是真实IP,可能背后有cdn进行隐藏真实IP

在掌握了服务器真实IP之后,攻击者可以根据地理位置选择最近的数据中心发起攻击,从而减少延迟提高成功率;同时也可以针对特定版本的操作系统或者中间件实施定制化的漏洞利用尝试。

在进行绕过 CDN 查找真实 IP 的操作之前,我们需要先判断目标网站是否使用了 CDN。以下为大家介绍两种简单有效的判断方法。

多地 Ping 检测

利用多地 Ping 服务,如站长工具 Ping 检测(http://ping.chinaz.com/)、爱站网 Ping 检测(https://ping.aizhan.com/)等,从不同地区的服务器向目标网站发送 Ping 请求 。

由于 CDN 会将内容缓存到各地的边缘节点,**若目标网站使用了 CDN,那么从不同地区 Ping 该网站时,解析出的 IP 地址通常会不唯一。**例如,当我们使用站长工具 Ping 检测对某知名电商网站进行检测时,可能会得到多个不同的 IP 地址,这就表明该网站使用了 CDN。

反之,如果返回的 IP 地址始终是同一个,那么该网站很可能未使用 CDN 。

如图,ping 163.com,会发现返回多个ip地址。判断该网站使用了CDN

image-20250219235054831

如图下,只找到一个ip地址,判断出来没有使用CDN

image-20250220000137868

Nslookup 检测

Nslookup 是一种常用的域名查询工具,在 Windows 系统中无需额外下载即可使用 。通过在命令提示符中输入 “nslookup 目标域名”,我们可以查询该域名解析的 IP 地址。

**若解析结果中出现多个不同的 IP 地址,那么大概率该网站使用了 CDN。**例如,执行 “nslookup www.baidu.com”,如果返回多个不同的 IP 地址,这就说明百度使用了 CDN 服务 。因为 CDN 的智能 DNS 服务器会根据不同的情况,将域名解析到多个不同的 CDN 节点 IP 上,以实现负载均衡和内容加速。

最后,如果访问真实IP地址跳转的网站和输入域名跳转的网站是一致的,就表明此IP为真实IP

五、 20 种绕过 CDN 查找真实 IP 的实用方法

1. DNS 历史解析记录查询

许多网站在使用 CDN 之前,会将域名直接解析到真实 IP 上。通过查询域名的历史解析记录,我们就有可能找到网站未使用 CDN 时的真实 IP。像

iphistory([https://viewdns.info/iphistory/])、

DNS 查询([https://dnsdb.io/zh-cn/])、

微步在线([https://x.threatbook.cn/])、

域名查询([https://site.ip138.com/])、

DNS 历史查询([https://securitytrails.com/])

等网站,都提供了历史 DNS 记录查询功能。以 securitytrails 为例,在其搜索框中输入目标域名,即可查看该域名的历史解析记录,从中找到曾经解析过的真实 IP 。

https://get-site-ip.com/ 国外的绕过CDN

如图,以www.163.com为例子,可以看到网站的真实IP地址

image-20250220000528686

2. 查找子域名

有些网站在部署 CDN 时,可能仅对主域名进行了配置,而部分子域名并未使用 CDN 服务。因此,通过查找子域名并判断其是否使用 CDN,我们可以找到真实 IP。具体方法如下:

搜索引擎查询:利用 Google、百度、Bing 等传统搜索引擎,通过特定的搜索语法查找子域名。例如,在 Google 中输入

“site:baidu.cominurl:baidu.com”,

就可以搜索出百度的部分子域名。

在线查询工具:诸如

http://tool.chinaz.com/subdomain

http://i.links.cn/subdomain、

http://subdomain.chaxun.la

http://searchdns.netcraft.com/、

https://www.virustotal.com/

等在线工具,能帮助我们快速查找子域名。

子域名爆破工具

Layer 子域名挖掘机、

wydomain[https://github.com/ring04h/wydomains]、

subDomainsBrute[https://github.com/lijiejie/Sublist3r]、

Sublist3r

[https://github.com/aboul3la/Sublist3r]

等工具,通过字典爆破的方式,能挖掘出更多的子域名。

3. 网站邮件头信息获取

一些网站在提供邮箱注册、邮箱找回密码、RSS 邮件订阅等功能时,会使用真实服务器发送邮件。我们可以通过注册账号、请求找回密码等操作,让网站给自己发送邮件,然后查看邮件头信息,从中提取出真实 IP。例如,在收到的邮件中,查看 “Received” 字段或 “Return-Path” 字段,有可能找到网站的真实 IP 。

4. 网络空间安全引擎搜索

钟馗之眼[https://www.zoomeye.org]、

Shodan[https://www.shodan.io]、

Fofa[https://fofa.so]

等网络空间安全引擎,通过对全网设备的扫描和信息收集,能为我们提供丰富的网络资产信息。在这些引擎中,通过输入目标网站的关键字或域名进行搜索,有可能找到被收录的真实 IP。例如,在 Fofa 中输入 “domain=“目标域名””,就可以查找与该域名相关的 IP 地址信息。

5. 利用 SSL 证书寻找

SSL 证书中包含了域名、子域名和电子邮件地址等信息,且证书颁发机构会将证书发布到公共日志中。我们可以利用 SSL 证书搜索引擎,如 Censys([https://censys.io/ipv4]),通过搜索目标网站的域名,获取与之相关的 SSL 证书信息,进而从证书中查找真实 IP。在 Censys 搜索框中输入 “parsed.names: 目标域名 and tags.raw: trusted”,就能筛选出有效的证书,并查看使用该证书的 IPv4 主机列表,从中找到可能的真实 IP 。

6. 国外主机解析域名

部分 CDN 厂商主要针对国内线路进行优化,而在国外的线路部署较少。因此,我们可以利用国外的 DNS 服务器进行域名解析,通过国外主机访问目标网站,有较大概率获取到真实 IP。我们可以使用

[https://asm.ca.com/zh_cn/ping.php]、

[http://host-tracker.com/]、

[http://www.webpagetest.org/]、

[https://dnscheck.pingdom.com/]

等国外多 PING 测试工具,从不同的国外节点对目标域名进行解析和访问,观察解析结果中是否存在真实 IP 。

7. 扫描全网

借助 Zmap

([https://github.com/zmap/zmap])、

masscan

([https://github.com/robertdavidgraham/masscan])

等工具,可以对整个互联网进行扫描。Zmap 号称能在 45 分钟内扫遍全网,masscan 更是最快可在六分钟内完成互联网端口扫描。通过对扫描结果进行关键字查找,如查找目标网站的特征字符串、特定端口开放情况等,我们可以筛选出与目标网站相关的 IP 地址,从中找到真实 IP 。

8. 配置不当导致绕过

在 CDN 的配置过程中,如果存在一些配置细节问题,就可能导致 CDN 防护被绕过,从而暴露真实 IP。例如:

域名解析配置不当:为了方便用户访问,一些网站会将[http://www.test.com]和[http://test.com]解析到同一个站点,但如果 CDN 只配置了http://www.test.com,那么通过访问[http://test.com]就可以绕过 CDN,直接访问到真实 IP 。此时访问 http 就有可能绕过 CDN,获取到真实 IP 。

9. phpinfo 等探针查找

一些网站可能会存在 phpinfo、github 泄露等含有服务器信息的探针类文件。通过访问这些文件,我们可以获取到服务器的相关信息,其中可能包含真实 IP。例如,访问 “目标网站 /phpinfo.php”,在 phpinfo 页面中查找 “Server API”、“Local IP” 等相关信息,有可能找到网站的真实 IP 。

10. 网站根域或子域查找

某些网站出于成本或其他考虑,可能未对根域或部分子域部署 CDN。我们可以通过对根域和各个子域进行逐一排查,判断是否存在未使用 CDN 的情况。如果发现某个根域或子域的解析 IP 与 CDN 节点 IP 不同,那么这个 IP 很可能就是真实 IP。例如,使用 ping 命令对根域和各个子域进行测试,观察解析出的 IP 地址是否一致 。

11. 利用邮件服务器查找

当网站的 Web 服务和 Email 服务运行在同一台服务器上时,邮件服务器的 IP 地址可能就是网站的真实 IP。我们可以通过查询网站的 MX 记录(邮件交换记录),获取邮件服务器的信息,然后对邮件服务器进行进一步分析。在命令提示符中输入 “nslookup -type=mx 目标域名”,即可查询到目标网站的 MX 记录,从中找到邮件服务器的域名,再通过对该域名进行解析,获取其对应的 IP 地址 。

12. FOFA查询网站标题

FOFA 是一款强大的网络空间搜索引擎,我们可以通过在 FOFA 中搜索网站标题关键字,来查找与之相关的 IP 地址。例如,已知目标网站的标题中包含特定的关键词,在 FOFA 中输入 “title=“关键词””,进行搜索后,就能得到一系列符合条件的 IP 地址和域名信息。通过对这些信息进行筛选和分析,有可能找到目标网站的真实 IP 。

13. Censys 查询 SSL 证书

Censys 除了可以通过域名搜索 SSL 证书外,还可以通过 SSL 证书的 HASH 值进行搜索。我们可以先获取目标网站 SSL 证书的 HASH 值,然后在 Censys 中输入相关搜索语句,如 “ssl.cert.sha256_fingerprint:“证书 HASH 值””,即可查找使用该证书的 IP 地址。这种方式能够帮助我们从海量的网络设备中,精准定位到与目标网站 SSL 证书相关的服务器,从而获取真实 IP 。

14. 分析目标 C 段判断

通过对目标网站的子域名进行分析,找出多个子域名对应的 IP 地址,并观察这些 IP 地址是否属于同一 C 段。如果发现多个子域名的 IP 地址集中在某一 C 段,且部分子域名未使用 CDN,那么可以对该 C 段的服务器进行全面扫描和分析。使用 Nmap等工具对该 C 段的服务器进行端口扫描和服务探测,结合目标网站的特征,判断是否存在真实 IP。例如,如果发现某一 IP 地址开放了与目标网站相同的服务端口,且服务特征相似,那么这个 IP 很可能就是真实 IP 。

15. 利用目标网站漏洞

如果目标网站存在 XSS(跨站脚本攻击)、CSRF(跨站请求伪造)、文件上传等漏洞,我们可以利用这些漏洞来绕过 CDN 获取真实 IP。以 XSS 漏洞为例,通过在目标网站注入恶意脚本,当受害者访问该网站时,恶意脚本可以获取受害者的 IP 地址,并将其发送到我们指定的服务器。由于受害者与目标网站的源服务器直接通信,因此获取到的 IP 地址可能就是真实 IP 。

16. 社工 CDN 控制台

通过社会工程学手段,如钓鱼邮件、电话诈骗等方式,尝试获取 CDN 控制台的账号密码或相关信息。一旦获取到 CDN 控制台的访问权限,我们就可以在控制台中查看源服务器的真实 IP 地址。例如,向网站管理员发送一封伪装成 CDN 服务提供商的钓鱼邮件,诱导管理员点击邮件中的链接,输入 CDN 控制台的账号密码,从而获取相关信息 。

17. 利用 HTTP 标头寻找

借助一些平台,如 Censys,通过比较 HTTP 标头来查找原始服务器 IP。每个服务器的 HTTP 标头都包含了丰富的信息,如服务器软件版本、操作系统类型等。我们可以通过分析目标网站的 HTTP 标头特征,在 Censys 等平台上设置相应的搜索条件,查找具有相同 HTTP 标头特征的服务器,从而找到可能的真实 IP。例如,在 Censys 中输入

“80.http.get.headers.server:

目标服务器软件名称”,进行搜索后,筛选出符合条件的服务器 IP 地址 。

18. 利用网站返回内容寻找

仔细分析网站返回的内容,也可能发现真实 IP 的线索。例如,网站的 favicon(网站图标)通常具有唯一的 hash 值,我们可以通过计算目标网站 favicon 的 hash 值,然后在搜索引擎中搜索具有相同 hash 值的 IP 地址。使用 Python 脚本可以方便地计算 favicon 的 hash 值,代码如下:

import mmh3import requestsrequest = requests.get('http://www.xx.com/favicon.ico')favicon = request.content.encode('base')hash = mmh3.hash(favicon)print 'http.favicon.hash:'+ str(hash)

通过这种方式,有可能找到与目标网站使用相同 favicon 的服务器,进而获取真实 IP 。

19. 长期关注

持续关注目标网站的动态,因为 CDN 的配置可能会发生变更。在 CDN 配置变更过程中,可能会出现短暂的真实 IP 暴露情况。我们可以定期使用 ping 命令、nslookup 命令等工具对目标网站进行检测,观察解析出的 IP 地址是否发生变化。一旦发现 IP 地址与之前的 CDN 节点 IP 不同,就需要进一步分析该 IP 是否为真实 IP 。

20. 对比 banner

通过扫描不同节点的端口,获取其 banner 信息,对比不同节点的 banner 信息,找出与目标网站服务特征一致的服务器,从而确定真实 IP 所在服务器。使用 Nmap 工具对不同节点进行扫描,获取其开放端口的 banner 信息。例如,执行 “nmap -sV -p 80,443 目标 IP”,可以扫描目标 IP 的 80 和 443 端口,并获取相应的服务版本等 banner 信息。将获取到的各个节点的 banner 信息与目标网站的已知服务特征进行对比,如果发现某个节点的 banner 信息与目标网站的服务特征高度匹配,那么该节点的 IP 很可能就是真实 IP 。

总结

绕过 CDN 查找真实 IP 的方法多种多样,每种方法都有其独特的原理和适用场景 。在实际的网络安全工作中,这些方法为安全研究人员和运维人员提供了有力的工具,帮助他们更好地了解目标网络架构,发现潜在的安全隐患,从而制定更加有效的安全防护策略。同时,对于网站管理员来说,了解这些绕过方法也至关重要,这有助于他们及时发现并弥补 CDN 配置中的漏洞,加强对网站的安全防护 。

需要强调的是,以上所有方法的使用都必须遵循法律法规,仅可用于合法的安全测试、研究以及在获得授权的情况下进行。未经授权试图获取他人网站的真实 IP 并进行恶意攻击,属于违法行为,将会面临严重的法律后果。网络空间需要我们共同维护,只有在合法合规的框架内进行技术探索和实践,才能真正推动网络安全技术的进步,保障网络空间的安全与稳定 。