CDN绕过

CDN绕过

介绍

基本概念

Content Delivery Network(内容分发网络)

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

大致过程

image-20220315110626995

假设网站使用CDN加速,当一个客户端请求该网站域名时,处理流程如下:

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

优点

  1. 提高访问速度,保证不同网络中的用户都能得到良好的访问质量。
  2. 减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能。
  3. 可以有效地预防黑客入侵以及降低各种D.D.o.S攻击对网站的影响。

… …

适用范围

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

  • 静态内容加速(static内容,如:html、js、css、image)
  • 视音频、大文件下载,分发加速:腾讯、优酷、爱奇艺等视频
  • 视频直播加速:熊猫TV、斗鱼、淘宝直播
  • 移动应用加速:移动app内图片、页面、短视频、UGC等内容,小程序等

验证是否存在CDN

方法1 – 多处ping

很简单,使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 网站有:

方法2 – nslookup

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

有 CDN 的示例:

> www.baidu.com
服务器:  gw.gcableconfig.local
Address:  192.168.1.1

非权威应答:
名称:    www.a.shifen.com
Addresses:  182.61.200.7
          182.61.200.6
Aliases:  www.baidu.com

无 CDN 的示例:

> johnfrod.top
服务器:  gw.gcableconfig.local
Address:  192.168.1.1

非权威应答:
名称:    johnfrod.top
Address:  81.71.121.131

方法3 – 使用工具

使用各种工具帮助检测目标网站是否使用了 CDN,可以参见如下网站:

image-20220315112944380

绕过 CDN 查找网站真实 IP

查询历史DNS记录

站点在使用CDN服务之前,它的真实IP地址可能被DNS服务器所记录到,此时我们就可以通过DNS历史记录找到目标真实IP

查询子域名

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

利用网站漏洞

通过Web漏洞让目标服务器主动来连接我们,这样我们就知道其真实IP了,可用的比如XSS盲打,命令执行反弹shell,SSRF等等。

服务器合法服务主动连接我们

让服务器主动连接我们告诉我们它的IP,不过使用的是合法的服务,如RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时查看邮件源码里面就会包含服务器的真实 IP 了。

使用国外主机解析域名

国内很多 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实IP。

工具:IPIP

目标敏感文件泄露

也许目标服务器上存在一些泄露的敏感文件中会告诉我们网站的IP,另外就是如 phpinfo之类的探针了。

查询Https证书

https://censys.io/

这个网址会将互联网所有的ip进行扫面和连接,以及证书探测。若目标站点有https证书,并且默认虚拟主机配了https证书,我们就可以找所有目标站点是该https证书的站点。

查询语法:

443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:www.xxx.com

网络空间引擎搜索法

zoomeye、fofa、shodan

通过这些公开的安全搜索引擎爬取得历史快照,主要得一些特征总结如下:

特有的http头部(如server类型、版本、cookie等信息)、

特定keyword(如title、css、js、url等)、

特定的IP段搜索(如fofa支持C段搜索),

有些时候爬取的时候不一定含有上面那些特征,但是我们仍然需要仔细排查。

根据网站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或虚拟主机服务器

参考资料

CDN

绕过CDN查找网站真实IP

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇