云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

绕过CDN去查找真实IP

jxf315 2024-12-31 12:31:47 教程文章 40 ℃


一、常见方法

1、域名搜集

理论依据是这样的,某些服务商并不会将所有的子域名都部署 CDN,如果能尽量的搜集子域名,或许可以找到一些没有部署 CDN 的子域名。

常见的主要是从这几个方面搜集子域名:

  • SSL 证书
  • 爆破
  • Google Hacking
  • 同邮箱注册人
  • DNS 域传送
  • 页面 JS 搜集
  • 网络空间引擎

2、查询 DNS 历史解析记录

常常服务器在解析到 CDN 服务前,会解析真实 ip,如果历史未删除,就可能找到。

2、邮件探测记录

如果目标系统有发件功能,通常在注册用户/找回密码等地方。

3、SSL 证书探测

可以利用空间引擎进行 SSL 证书探测。

一个小脚本,可以快速搜集证书

# -*- coding: utf-8 -*-
# @Time    : 2019-10-08 22:51
# @Author  : Patrilic
# @FileName: SSL_subdomain.py
# @Software: PyCharm

import requests
import re

TIME_OUT = 60
def get_SSL(domain):
    domains = []
    url = 'https://crt.sh/?q=%25.{}'.format(domain)
    response = requests.get(url,timeout=TIME_OUT)
    # print(response.text)
    ssl = re.findall("<TD>(.*?).{}</TD>".format(domain),response.text)
    for i in ssl:
        i += '.' + domain
        domains.append(i)
    print(domains)

if __name__ == '__main__':
    get_SSL("baidu.com")

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

4、偏远地区服务器访问

在偏远地区的服务器访问时,可能不会访问到 CDN 节点,而是直接访问服务器真实 ip,可以搞一个偏远地区的代理池,来访问目标域名,有概率就可以拿到真实 ip。

5、利用老域名

在换新域名时,常常将 CDN 部署到新的域名上,而老域名由于没过期,可能未使用 CDN,然后就可以直接获取服务器真实 ip。域名更新时,可能老域名同时解析到真实服务器,但是没有部署 CDN,这种情况下可以通过搜集域名备案的邮箱去反查,可能会有意外收获。

6、暴力匹配

找到目标服务器 IP 段后,可以直接进行暴力匹配 ,使用 masscan 扫描 HTTP banner,然后匹配到目标域名的相同 banner。

二、其他方法

特殊方法,当然不限于以下方法,还有更好的方法,只是我还没有发现而已,仅供参考。

1、phpinfo

2、favicon_hash

利用 shodan 的 http.favicon.hash 语法,来匹配 icon 的 hash 值, 直接推出。

3、CloudFlare Bypass

还可以通过 DDOS 来消耗对方的流量,只需要把流量打光,就会回到原始 ip。

4、其他

比如有些地方使用的 CDN 都是以 www.xxx.edu.cn开头,这种情况下有可能去掉前缀的 www,就可能绕过 CDN 了,可参考。

最近发表
标签列表