绕过CDN查找真实IP方法

2023-11-16 19:38:19 浏览数 (2)

相信大家平时在做渗透测试时,经常会碰到部署了CDN的网站,我们有时候想要获取某站的源站ip,方法有很多,今天我给大家总结一下,赠人玫瑰,手有余香。

CDN简介:

CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。

域名解析过程:

传统访问:用户访问域名-->解析IP-->访问目标主机

CDN模式:用户访问域名-->CDN节点-->真实IP-->目标主机

验证网站有无CDN方法:

利用“全球Ping”快速检测目标网址是否存在CDN,如果返回域名解析对应多个 IP 地址多半是使用了 CDN,如果得到的IP归属地是某CDN服务商,或者每个地区得到的IP地址不一样则说明可能存在CDN,可用以下几个网站检测!

http://ping.chinaz.com

http://ping.aizhan.com/

http://www.webkaka.com/ping.aspx

方法总结:

1.查询历史DNS记录:

查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:

DNS查询:https://dnsdb.io/zh-cn/

微步在线:https://x.threatbook.cn/

在线域名信息查询:http://toolbar.netcraft.com/site_report?url=

DNS、IP等查询:http://viewdns.info/

CDN查询IP:https://tools.ipip.net/cdn.php

SecurityTrails平台:https://securitytrails.com/domain/www.baidu.com/history/a

IP138:http://site.ip138.com

2.利用MX记录(邮件查找):

查看由网站发送的邮件原文,寻找Received参数信息。

3.利用网站漏洞:

目标敏感文件泄露,例如:phpinfo之类的探针、GitHub信息泄露等;

XSS盲打,命令执行反弹shell,SSRF等。

4.查询子域名:

毕竟 CDN 还是不便宜的,所以很多站长可能只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。

IP138:http://site.ip138.com(查询地址同方法1)

Google 搜索,例如:用语法"site:baidu.com -www"就能查看除www外的子域名。

子域名扫描器

5.网络空间引擎搜索:

常见的有以前的钟馗之眼,shodan,fofa搜索。以fofa为例,只需输入:title:“网站的title关键字”或者body:“网站的body特征”就可以找出fofa收录的有这些关键字的ip域名,很多时候能获取网站的真实ip。

钟馗之眼:https://www.zoomeye.org/

Shodan:https://www.shodan.io/

FOFA:https://fofa.so/

6.利用HTTP标头:

借助SecurityTrails这样的平台,任何人都可以在茫茫的大数据搜索到自己的目标,甚至可以通过比较HTTP标头来查找到原始服务器。特别是当用户拥有一个非常特别的服务器名称与软件名称时,攻击者找到你就变得更容易。

如果要搜索的数据相当多,如上所述,攻击者可以在Censys上组合搜索参数。假设你正在与1500个Web服务器共享你的服务器HTTP标头,这些服务器都发送的是相同的标头参数和值的组合。而且你还使用新的PHP框架发送唯一的HTTP标头(例如:X-Generated-Via:XYZ框架),目前约有400名网站管理员使用了该框架。而最终由三个服务器组成的交集,只需手动操作就可以找到了IP,整个过程只需要几秒钟。

例如,Censys上用于匹配服务器标头的搜索参数是80.http.get.headers.server :,查找由CloudFlare提供服务的网站的参数如下:

代码语言:javascript复制
80.http.get.headers.server:cloudflare

https://censys.io/ipv4

7.利用SSL证书:

(1).我们可以利用空间引擎进行 SSL 证书探测,搜索语句:

代码语言:javascript复制
443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:www.baidu.com

https://censys.io/ipv4

(2).还有一种方式,就是搜集 SSL 证书 Hash,然后遍历 ip 去查询证书 hash,如果匹配到相同的,证明这个 ip 就是那个 域名同根证书的服务器真实 ip。简单来说,就是遍历 0.0.0.0/0:443,通过 ip 连接 https 时,会显示证书。

当然,也可以用 censys 等引擎,baidu.com证书的搜索查询参数为:parsed.names:baidu.com 只显示有效证书的查询参数为:tags.raw:trusted 攻击者可以在Censys上实现多个参数的组合,这可以通过使用简单的布尔逻辑来完成。组合后的搜索参数为:

代码语言:javascript复制
parsed.names: baidu.com and tags.raw: trusted

Censys将向你显示符合上述搜索条件的所有标准证书,以上这些证书是在扫描中找到的。

要逐个查看这些搜索结果,攻击者可以通过单击右侧的“Explore”,打开包含多个工具的下拉菜单。What's using this certificate? > IPv4 Hosts

此时,攻击者将看到一个使用特定证书的IPv4主机列表,而真实原始 IP就藏在其中。

你可以通过导航到端口443上的IP来验证,看它是否重定向到xyz123boot.com?或它是否直接在IP上显示网站?

隐藏服务具有SSL证书,要查找它使用的IPv4主机,只需将"SHA1 fingerprint"(签名证书的sha1值)粘贴到Censys IPv4主机搜索中,即可找到证书,使用此方法可以轻松找到配置错误的Web服务器。

8.用网站返回内容:

如果原始服务器IP也返回了网站的内容,那么可以在网上搜索大量的相关数据。浏览网站源代码,寻找独特的代码片段。在JavaScript中使用具有访问或标识符参数的第三方服务(例如Google Analytics,reCAPTCHA)是攻击者经常使用的方法。或者说用title,毕竟竟每个网站的title基本上都是独一无二的。以下是从HackTheBox网站获取的Google Analytics跟踪代码示例:

ga('create','UA-93577176-1','auto');

可以使用80.http.get.body:参数通过body/source过滤Censys数据,不幸的是,正常的搜索字段有局限性,但你可以在Censys请求研究访问权限,该权限允许你通过Google BigQuery进行更强大的查询。

Shodan是一种类似于Censys的服务,也提供了http.html搜索参数。

搜索示例:https://www.shodan.io/search?query=http.html:UA-32023260-1

9.Nslookup查询:

查询域名的NS记录、MX记录、TXT记录等很有可能指向的是真实ip或同C段服务器。

10.全网扫描(不推荐):

需要找 baidu.com网站的真实 IP,我们首先从 apnic 获取 IP 段,然后使用 Zmap 的 banner-grab 扫描出来 80 端口开放的主机进行 banner 抓取,最后在 http-req 中的 Host 写baidu.com。

11.F5 LTM解码法:

当服务器使用F5 LTM做负载均衡时,通过对set-cookie关键字的解码真实ip也可被获取,例如:Set-Cookie: BIGipServerpool_8.29_8030=487098378.24095.0000,先把第一小节的十进制数即487098378取出来,然后将其转为十六进制数1d08880a,接着从后至前,以此取四位数出来,也就是0a.88.08.1d,最后依次把他们转为十进制数10.136.8.29,也就是最后的真实ip。

12.其他:

使用ddos消耗完CDN账号流量使其回源;

等;

希望本文能对你有所帮助,谢谢。

不要等夕阳西下时才对自己说,想当初、如果、要是,之类的话!不为别人,只为做一个连自己都羡慕的人。


本文链接:https://cloud.tencent.com/developer/article/2359331

天乐原创文章,转载请注明出处!

0 人点赞