当前位置: 首页 > news >正文

CDN绕过技术总汇

本文首发于合天网安实验室

首发链接:https://mp.weixin.qq.com/s/9oeUpFUZ_0FUu6YAhQGuAg

近日HVV培训以及面试,有人问了CDN该如何绕过找到目标真实IP,这向来是个老生常谈的问题,而且网上大多都有,但是有些不够全面,今天把绕过CDN全理一理。术语叫做“深入浅出”。

CDN简介

定义

内容分发网络(英语:Content Delivery Network或Content Distribution Network,缩写:CDN)是指一种透过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。

CDN是利用缓存技术,解决如何将数据快速可靠从源站传递到用户的问题。用户获取数据时,不需要直接从源站获取,通过CDN分发,用户可以从一个较优的服务器获取数据,从而达到快速访问,并减少源站负载压力的目的(负载均衡)

工作过程

  1. 用户在浏览器输入域名,先向DNS服务器发送请求
  2. DNS服务器将域名解析权交(通过CNAME)给CDN专用DNS服务器
  3. 客户端根据返回的ip访问CDN负载均衡设备
  4. 负载均衡设备根据当前的负载情况和用户所需内容,返回合适的ip
  5. 客户端最后根据ip访问对应的CDN缓存服务器

优点

  1. 缓解原服务器访问压力
  2. 解决互联互通难题
  3. 解决网站突发流量的问题
  4. 合理利用互联网资源
  5. 全面预防单点故障
  6. 改善用户的访问的质量和体验
  7. 提供全面、准确、和详细的数据统计
  8. 有效的防治黑客攻击源站

适用范围

一般来说以资讯、内容等为主的网站,具有一定访问体量的网站

  • 静态内容(html、js、css、image等,如图床)
  • 视音频、大文件下载,分发加速:哔哩哔哩、腾讯等视频,百度云盘、蓝奏云等
  • 视频直播加速:斗鱼、淘宝、虎牙直播
  • 移动应用加速:移动app内图片、页面、短视频、UGC等内容,小程序等

像直播这一类必有CDN,因为一个网站直播流涌入大量用户,现在任何一家直播平台都没有直接负载的服务器能力。看直播再快的网速都有一定延迟的原因之一就是,需要在CDN里缓存一部分,用户从CDN里观看。

判断是否存在CDN

方法一:PingPingPing

不同地区对应着不同的CDN中心,所以使用不同站点的ping服务可分配到不同的CDN。这很简单,使用各种多站点ping服务来检查对应的IP地址是否唯一。如果不是唯一的,则使用大多数 CDN。多站Ping网站为:

http://ping.chinaz.com/
http://ping.aizhan.com/
http://tools.ipip.net/ping.php (强烈推荐这个,这个默认多站ping,真的很多)

方法二:nslookup

使用 nslookup 进行检测,原理同上,如果返回域名解析对应多个 IP 地址多半是使用了 CDN。

有 CDN 的示例:

> ctfking.com
服务器:  public1.alidns.com
Address:  223.5.5.5非权威应答:
名称:    d831e3eec87f7d3c02a6-mini-l2.qcloudzygj.com
Addresses:  106.55.85.170106.55.85.167106.55.86.71
Aliases:  ctfking.comd14ca549ac628ef817e7beaa5095976f.qcloudwzgj.com

无CDN的示例:

> nbufe.edu.cn
服务器:  public1.alidns.com
Address:  223.5.5.5名称:    nbufe.edu.cn

方法三:工具

CDN Finder

CDN绕过

方法一:查询DNS解析记录

1.查看IP与域名绑定的历史记录。使用 CDN 之前可能有记录。相关查询网站为:

Dnsdb

微步在线

Netcraft

IPIP(没错又是这个网站,它太猛了)

2.借助Securitytrails平台(https://securitytrails.com/)

攻击者可以查明真实的原始IP。他们只需在搜索字段中输入站点域名并按 ENTER,即可在左侧菜单中找到“历史数据”。

如何找到隐藏在 CloudFlare 或 Tor 背后的真实原始 IP?

除了过去的 DNS 记录,即使是当前的记录也可能泄露原始服务器 IP。例如,MX 记录是查找 IP 的常用方法。如果网站在与 Web 相同的服务器和 IP 上托管自己的邮件服务器,则原始服务器 IP 将在 MX 记录中。

方法二:查询子域名

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

微步在线

上面提到的微步在线功能强大,黑客只需输入域名即可查找(如baidu.com),点击子域选项即可找到其子域,但免费用户每月只有5次免费查询机会。

Dnsdb

黑客只需要输入baidu.com TYPE:A就可以收集到百度的子域名和IP。

Google

谷歌站点:baidu.com-www 可以看到除WWW以外的子域

子域扫描器

Layer子域名挖掘机和lijiejie的subdomain那个工具都很不错

推荐长亭的xray

方法三:网络空间引擎

fofa、鹰图、Zoomeye、shodan、360

推荐鹰图

只需输入:title:“网站的title关键字”或者body:“网站的body特征”就可以找出收录的有这些关键字的ip域名,很多时候能获取网站的真实ip

方法四:使用SSL证书寻找真实原IP

如果您在 xyz123boot.com 上托管服务,则原始服务器 IP 为 136.23.63.44。CloudFlare 将为您提供 DDoS 防护、Web 应用防火墙和其他一些安全服务,以保护您的服务免受攻击。为此,您的 Web 服务器必须支持 SSL 并具有证书。此时,CloudFlare 与您的服务器之间的通信,就像您与 CloudFlare 之间的通信一样,将被加密(即没有灵活的 SSL)。这看起来很安全,但问题是当你直接连接到443端口(https://136.23.63.44:443)上的IP时,会暴露SSL证书。

此时,如果攻击者扫描0.0.0.0/0,整个互联网,就可以在xyz123boot.com的443端口获取有效证书,进而获取提供给你的web服务器IP。

目前,Censys 工具可以扫描整个互联网。Censys 是用于搜索联网设备信息的新搜索引擎。安全专家可以使用它来评估其实施的安全性,黑客可以使用它作为初步调查。攻击目标和收集目标信息的强大武器。Censys 搜索引擎可以扫描整个互联网。Censys每天扫描IPv4地址空间,搜索所有联网设备并收集相关信息,并返回资源(如设备、网站、证书等)配置和部署的整体报告。

攻击者唯一需要做的就是将上述搜索词转换为实际的搜索查询参数。

xyz123boot.com证书的搜索查询参数为:parsed.names: xyz123boot.com

只显示有效证书的查询参数为:tags.raw:trusted

攻击者可以在 Censys 上实现多个参数的组合,这可以通过使用简单的布尔逻辑来完成。

组合的搜索参数是:parsed.names:xyz123boot.com 和 tags.raw:trusted

Censys 将向您显示在扫描中找到的符合上述搜索条件的所有标准证书。

要一一查看这些搜索结果,攻击者可以通过单击右侧的“探索”来打开一个包含多个工具的下拉菜单。什么在使用这个证书?> IPv4 主机

使用给定的 SSL 证书

如果您是执法人员,并且想找到隐藏在 cheesecp5vaogohv.onion 下的儿童色情网站。最好的办法是找到它的原始IP,这样就可以追踪它的托管服务器,甚至可以找出它背后的运营商和财务线索。

隐藏服务具有 SSL 证书。要查找它使用的 IPv4 主机,只需将“SHA1 指纹”(签名证书的 sha1 值)粘贴到 Censys IPv4 主机搜索中即可找到证书。这种方法很容易找到配置错误的Web服务器。

方法五:使用HTTP头找到真正的原始IP

借助 SecurityTrails 这样的平台,任何人都可以在海量的大数据中搜索自己的目标,甚至可以通过比较 HTTP 标头找到原始服务器。

特别是当用户有一个非常特殊的服务器名称和软件名称时,攻击者更容易找到你。

如果要搜索的数据很多,如上所述,攻击者可以在 Censys 上组合搜索参数。假设您正在与 1500 个 Web 服务器共享您的服务器 HTTP 标头,所有这些服务器都发送相同的标头参数和值组合。而且您还使用新的 PHP 框架来发送唯一的 HTTP 标头(例如:X-Generated-Via: XYZ 框架),目前约有 400 位网站管理员使用该框架。最终,在三台服务器的交汇处,通过人工操作即可找到IP,整个过程仅需几秒。

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

80.http.get.headers.server:cloudflare

方法六:利用网站返回的内容寻找真实的原IP

如果原服务器IP也返回网站内容,可以在网上搜索很多相关资料。

浏览网站源代码以查找独特的代码片段。在 JavaScript 中使用具有访问权限或标识符参数的第三方服务(例如 Google Analytics、reCAPTCHA)是攻击者经常使用的一种方法。

以下是从 HackTheBox 网站获得的 Google Analytics 跟踪代码示例:

ga(‘创建’,‘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%3AUA-32023260-1

方法七:使用外地主机解析域名

国内很多CDN厂商因为各种原因只做国内线,国外线路可能几乎没有。这时候我们可能会使用外地主机直接访问真实IP。

方法八:网站漏洞搜索

  1. 目标敏感文件泄露,如phpinfo、GitHub信息泄露等探针
  2. XSS盲打、命令执行反向shell、SSRF等
  3. 无论是社会工程还是其他手段,目标网站获取CDN中的管理员账号,在CDN的配置中可以找到网站的真实IP。

方法九:网站邮件订阅搜索

RSS邮件订阅,很多网站都有自己的sendmail,会发邮件给我们。此时,服务器的真实IP将包含在邮件的源代码中。

方法十:用Zmap扫描全网

要找到xiaix.me网站的真实IP,我们首先从apnic获取IP段,然后使用Zmap的banner-grab扫描出开放80端口的主机进行banner抓包,最后在Host中写入xiaix.me http请求。

方法十一: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。

方法十二:网页敏感信息

这条思路来源于Jacko

favicon哈希值

根据网站图标哈希值搜索IP

python2脚本

import mmh3
import requests
response = requests.get('https://example.com/favicon.ico')
favicon = response.content.encode('base64')
hash = mmh3.hash(favicon)
print 'http.favicon.hash:'+str(hash)

去fofa或者shodan上搜索该哈希值

查询格式:

  • fofa:icon_hash="xxx"
  • shodan:http.favicon.hash:xxx

HTML源代码检索查找IP

根据网站页面HTML中特有的字符串去搜索引擎中搜索,如目标页面中由HTML标签为<title>的字段比较特殊,那么可以去FOFA中搜索:

title="xxxxxxxxxxxxxxx"

搜索到的结果会显示IP,访问该IP,若能够正常访问则为真正IP,如果打不开则为CDN或虚拟主机服务器

参考文章:

Jacko CDN

How to bypass the CDN to query the real IP of a website

相关文章:

CDN绕过技术总汇

注 本文首发于合天网安实验室 首发链接&#xff1a;https://mp.weixin.qq.com/s/9oeUpFUZ_0FUu6YAhQGuAg 近日HVV培训以及面试&#xff0c;有人问了CDN该如何绕过找到目标真实IP&#xff0c;这向来是个老生常谈的问题&#xff0c;而且网上大多都有&#xff0c;但是有些不够全面…...

算法训练营DAY51|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

本期是求子序列的新的一期&#xff0c;题目前两道有一些相似之处&#xff0c;思路差不多&#xff0c;第三道有一点难度&#xff0c;但并不意味着第一道没有难度&#xff0c;没有做过该类型题的选手&#xff0c;并不容易解出题解。 300. 最长递增子序列 - 力扣&#xff08;Leet…...

mac:彻底解决-安装应用后提示:无法打开“XXX”,因为无法验证开发者的问题;无法验证此App不包含恶意软件

mac从浏览器或其他电脑接收了应用&#xff0c;但是打开报错 目录报错解决办法一次性方法永久解决方法验证恢复应用验证报错 截图如下&#xff1a; 错误信息 无法打开“XXX”&#xff0c;因为无法验证开发者的问题&#xff1b;无法验证此App不包含恶意软件 解决办法 一次性方…...

CPU 指标 user/idle/system 说明

从图中看出&#xff0c;一共有五个关于CPU的指标。分别如下&#xff1a; User User表示&#xff1a;CPU一共花了多少比例的时间运行在用户态空间或者说是用户进程(running user space processes)。典型的用户态空间程序有&#xff1a;Shells、数据库、web服务器…… Nice N…...

Thinkphp大型进销存ERP源码/ 进销存APP源码/小程序ERP系统/含VUE源码支持二次开发

框架&#xff1a;ThinkPHP5.0.24 uniapp 包含:服务端php全套开源源码&#xff0c;uniapp前端全套开源源码&#xff08;可发布H5/android/iod/微信小程序/抖音小程序/支付宝/百度小程序&#xff09; 注&#xff1a;这个是全开源&#xff0c;随便你怎么开&#xff0c;怎么来&a…...

hgame2023 WebMisc

文章目录Webweek1Classic Childhood GameBecome A MemberGuess Who I AmShow Me Your BeautyWeek2Git Leakagev2boardSearch CommodityDesignerweek3Login To Get My GiftPing To The HostGopher Shopweek4Shared DiaryTell MeMiscweek1Where am I神秘的海报week2Tetris Master…...

67. Python的绝对路径

67. Python的绝对路径 文章目录67. Python的绝对路径1. 准备工作2. 路径3. 绝对路径3.1 概念3.2 查看绝对路径的方法4. 课堂练习5. 用绝对路径读取txt文件6. 加\改写绝对路径6.1 转义字符知识回顾6.2 转义字符改写7. 总结1. 准备工作 对照下图&#xff0c;新建文件夹和txt文件…...

VHDL语言基础-组合逻辑电路-加法器

目录 加法器的设计&#xff1a; 半加器&#xff1a; 全加器&#xff1a; 加法器的模块化&#xff1a; 四位串行进位全加器的设计&#xff1a; 四位并行进位全加器&#xff1a; 串行进位与并行进位加法器性能比较&#xff1a; 8位加法器的实现&#xff1a; 加法器的设计&…...

内存检测工具Dr.Memory在Windows上的使用

之前在https://blog.csdn.net/fengbingchun/article/details/51626705 中介绍过Dr.Memory&#xff0c;那时在Windows上还不支持x64&#xff0c;最新的版本对x64已有了支持&#xff0c;这里再总结下。 Dr.Memory源码地址https://github.com/DynamoRIO/drmemory&#xff0c;最新发…...

J6412四网口迷你主机折腾虚拟机教程

今天给大家做一个四网口迷你主机折腾虚拟机的安装教程&#xff0c;主机采用的是maxtang大唐NUC J6412 intel i226V四网口的迷你主机&#xff0c;这款主机它是不能直接装上NAS的&#xff0c;必须使用虚拟机系统&#xff0c;近期研究了下然后做了一个教程分享给大家。 首先需要做…...

电子招标采购系统—企业战略布局下的采购寻源

​ 智慧寻源 多策略、多场景寻源&#xff0c;多种看板让寻源过程全程可监控&#xff0c;根据不同采购场景&#xff0c;采取不同寻源策略&#xff0c; 实现采购寻源线上化管控&#xff1b;同时支持公域和私域寻源。 询价比价 全程线上询比价&#xff0c;信息公开透明&#xff…...

elasticsearch 之 mapping 映射

当我们往 es 中插入数据时&#xff0c;若索引不存在则会自动创建&#xff0c;mapping 使用默认的&#xff1b;但是有时默认的映射关系不能满足我们的要求&#xff0c;我们可以自定义 mapping 映射关系。 mapping 即索引结构&#xff0c;可以看做是数据库中的表结构&#xff0c…...

2023年rabbitMq面试题汇总2(5道)

一、如何确保消息接收⽅消费了消息&#xff1f;接收⽅消息确认机制&#xff1a;消费者接收每⼀条消息后都必须进⾏确认&#xff08;消息接收和消息确认是两个不同操作&#xff09;。只有消费者确认了消息&#xff0c;RabbitMQ才能安全地把消息从队列中删除。这⾥并没有⽤到超时…...

电视剧《狂飙》数据分析,正片有效播放市场占有率达65.7%

哈喽大家好&#xff0c;春节已经过去了&#xff0c;朋友们也都陆陆续续开工了&#xff0c;小编在这里祝大家开工大吉&#xff01;春节期间&#xff0c;一大批电视剧和网剧上映播出&#xff0c;其中电视剧《狂飙》以不可阻挡之势成功成为“开年剧王”。这里小编整理了一些《狂飙…...

cas单点登录后重定向次数过多问题以及调试cas-dot-net-client

问题描述&#xff1a; web项目应用cas作为单点登录站点&#xff0c;登录后无法打开WEB项目的页面&#xff0c;报错&#xff0c;说重定向次数过多。 老实说&#xff0c;这种问题&#xff0c;以前遇到过不少&#xff0c;是我这种半桶水程序员的噩梦。解决这种问题&#xff0c;不…...

【监控】Prometheus(普罗米修斯)监控概述

文章目录一、监控系统概论二、基础资源监控2.1、网络监控2.2、存储监控2.3、服务器监控2.4、中间件监控2.5、应用程序监控&#xff08;APM&#xff09;三、Prometheus 简介3.1、什么是 Prometheus3.2、优点3.3、组件3.4、架构3.5、适用于什么场景3.6、不适合什么场景四、数据模…...

opencv+python物体检测【03-模仿学习】

仿照练习&#xff1a;原文链接 步骤一&#xff1a;准备图片 正样本集&#xff1a;正样本集为包含“识别物体”的灰度图&#xff0c;一般大于等于2000张&#xff0c;尺寸不能太大&#xff0c;尺寸太大会导致训练时间过长。 负样本集&#xff1a;负样本集为不含“识别物体”的…...

计算机科学基础知识第二节讲义

课程链接 运行环境&#xff1a;WSL Ubuntu OMZ终端 PS&#xff1a;看到老师终端具有高亮和自动补全功能&#xff0c;我连夜肝出oh-my-zsh安装教程&#xff0c;实现了此功能。 这节课主要讲变量的语法、控制流程、shell功能等内容。 修改终端用户名&#xff0c;输入密码后重启…...

openssl genrsa 命令详解

文章目录一、openssl genrsa 命令介绍二、openssl genrsa 命令的语法及选项三、实例1、生成512位的 RSA 秘钥&#xff0c;输出到屏幕。2、生成512位 RSA 私钥&#xff0c;输出到指定的文件 genrsa.txt3、生成 1024 位 RSA 秘钥&#xff0c;采用 des 算法加密&#xff0c;加密密…...

C语言标准 —— C89(C90)、C99、C11、C17、C2X

C语言主要的三个标准&#xff1a;C89&#xff08;C90&#xff09;、C99、C11、K&#xff06;R C 指的是 C 语言的原始版本。1978年&#xff0c;C 语言的发明者丹尼斯里奇&#xff08;Dennis Ritchie&#xff09;和布莱恩柯林&#xff08;Brian Kernighan&#xff09;合写了一本…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...