CDN攻击指南
0x01 前言
在翻阅笔记的时候发现了几篇CDN相关许久之前收藏的落灰文章,正好抽着有时间把相关的文章又拿出来仔细研究了一遍,通过学习总结写下这篇文章作为学习过程的总结知识文章记录学习的过程,也正好写下此篇分享与大家一同学习。
0x02 CDN简介
CDN的全称(Content Delivery Network)即内容分发网络。CDN依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取内容,降低网络延迟,提高访问速度。简单来讲,CDN是用来进行加速的,它可以让用户更快获得所需的数据。
比如我们在北京访问阿里,阿里的服务器在深圳,这样我们想要获取阿里服务器上的数据就要跨越很远的距离,由于传输速度和路由转发等因素,就会导致访问速度非常缓慢。但如果我们在北京建立一个CDN服务器,上面缓存了一些服务器数据,那么北京用户只需要访问这个CND的服务器就能获取相关的内容,这样速度就提升了很多。
总结CDN使用原因可以加速网络访问,提供网站的访问速度。隐藏源站IP,减轻源站压力,提高安全性。降低服务器流量,使用cdn的流量价格远低于源站服务器的流量价格,节约流量费用。
0x03 国内外常见的CDN服务商
阿里云CDN
腾讯云CDN
七牛云CDN
百度云CND
又拍云CDN
360CDN
Ucloud
ChinaCache
网宿科技
帝联科技
CloudFlare
StackPath
Fastly
CDNetworks
Keycdn
CacheFly
Akamai
CloudFront
Edgecast
CDN77
0x04 CDN判断
1.多地ping
使用不同地域的ip地址进行ping测试,看域名解析的ip是否相同,如果不相同则可能使用了CDN。
在线工具多地点ping检测https://ping.chinaz.com/
ping 百度测试,百度使用了cdn结果如下
2.ping目标主域
通过ping目标的主域来观察域名解析情况来判断是否使用了CDN。
通过ping腾讯和京东进行测试可以看到两家使用了cdn,而ping青岛某公司未使用CDN
3.Nslookup
通过nslookup查看不同DNS域名解析情况来判断是否使用了CDN。如果不同的DNS解析结果如果不一样可能存在CDN服务。同一DNS服务器解析的地址有多个也可能存在CDN。
如下图对百度进行测试通过不同dns解析的地址不相同
如下图对京东进行测试有多个解析地址
4.asp/asp.net网站判断
对于asp或者asp.net开发的网站探测网站服务器如果不是使用IIS而是使用了Nginx且用了反向代理,基本可以判定该站点使用了cdn。
通过测试www.faa.gov站点发现该asp站点使用了Nginx反向代理,通过多地ping测试确定该站使用了CDN。
5.CDN在线检测
通过cdn在线检测平台进行cdn检测
https://www.cdnplanet.com/tools/cdnfinder/
6.通过https证书
有的cdn颁发的证书带有cdn名称,可通过https证书进行cdn识别。
0x05 CDN绕过ip溯源
1.通过查询历史DNS记录
站点在做CDN之前可能将域名解析到真实ip,通过查询DNS历史记录可能会找到CDN使用前的真实ip。
https://dnsdb.io/zh-cn/
https://x.threatbook.cn/
http://toolbar.netcraft.com/site_report?url=
http://viewdns.info/
http://www.17ce.com/
https://community.riskiq.com/
http://www.crimeflare.com/cfssl.html
2.子域查询法
CDN服务的使用成本还是挺高的,所以很多的站点只对流量大的主站做了CDN,这种情况下我们通过子域枚举就能获取到子站的真实ip,通常主站可能又跟子站在同一太服务器或者同一C段内,通过进一步C段查找就可以确定主站。
子域枚举我们可通过子域名枚举工具子域名挖掘机/subDomainBrute、网络空间搜索引擎fofa/shodan/鹰图、在线工具或者Google搜索语法进行查找。
##1.在线查询
http://tool.chinaz.com/subdomain/http://i.links.cn/subdomain/
https://site.ip138.com
https://crt.sh
https://hackertarget.com/find-dns-host-records/
https://dnsdumpster.com
##2.子域爆破工具
Layer子域名挖掘机wydomain:
https://github.com/ring04h/wydomain
subDomainsBrute:
https://github.com/lijiejie/Sublist3r:https://github.com/aboul3la/Sublist3r
3.通过email让目标主动暴露真实ip
这种方法适用于大型企业网站自主架设邮件服务器,通过使目标邮件服务器向我们主动发送邮件查看邮件源码邮件标识头,如果邮件发送中间未做数据防护处理则会暴露真实邮件服务器ip这时我们可以通过判断或c段旁站进一步确定主站ip。
如何让主动让邮件服务器给我们发送邮件有如下触发点:
RSS订阅
邮件注册激活
邮件密码找回
产品更新邮件推送
业务执行邮件通知
4.使用国外主机解析域名
很多CDN厂商因为某些原因仅对国内线路做了解析,这种情况下使用国外主机直接访问就可能获取到真实IP。
5.通过站点存在的漏洞
通过站点存在的一些漏洞能够进一步利用服务器或者根据敏感信息泄露中日志服务器文件、phpinfo、网站备份文件、.git、web.xml等等信息寻找站点ip。
0x06 总结
通过对CDN攻击相关的学习做了以上总结,还有很多不足之处有待深入,总结的相关方法不够全面详细。比如上章中对溯源ip的方法中,很多方法需要我们自己去不断尝试,有些模糊的概念没办法进行详解的过程展示。安全技术更重要的是细心,在对目标进行判断和尝试的测试时越是细心越能够发现关键点。
E
N
D
关
于
我
们
Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,团队致力于分享高质量原创文章、开源安全工具、交流安全技术,研究方向覆盖网络攻防、系统安全、Web安全、移动终端、安全开发、物联网/工控安全/AI安全等多个领域。
团队作为“省级等保关键技术实验室”先后与哈工大、齐鲁银行、聊城大学、交通学院等多个高校名企建立联合技术实验室。团队公众号自创建以来,共发布原创文章400余篇,自研平台达到31个,目有18个平台已开源。此外积极参加各类线上、线下CTF比赛并取得了优异的成绩。如有对安全行业感兴趣的小伙伴可以踊跃加入或关注我们。
微信扫码关注该文公众号作者