信息收集-CDN 绕过技术
CDN 的全称是 Content Delivery Network,即内容分发网络。CDN 是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。但在安全测试过程中,若目标存在 CDN 服务,将会影响到后续的安全测试过程。
如何判断目标存在 CDN 服务
利用多节点技术进行请求返回判断,一般网站服务器只会拥有少量的ip,通过多节点访问获得的大量的ip,那么就存在cdn服务
- 利用多节点访问百度,获得大量ip地址https://ping.chinaz.com
- 可以利用ping命令和nslookup命令,无cdn会直接显示解析的域名以及地址,有cdn会显示cdn的域名及地址
- 一般情况下cdn的部署是利用域名的cname记录,所以bilibili的ping命令结果显示的域名就是cdn的域名
目前常见的 CDN 绕过技术有哪些
子域名查询,dns历史记录查询
一般情况下,网站管理者不一定会对一个域名下的所有子域名都部署cdn,但是可能会把所有网站部署在同一个ip下,这样可以通过其他的子域名,来查询到ip
- 举个例子,如果访问
www.baidu.com
遇到了cdn,但是这时候可以通过子域名查询的手段获取到其他子域名,访问tieba.baidu.com
的时候就可能会直接获取到ip,具体查看以下案例
- 子域名可以通过一些网站进行查询,也可以通过字典进行爆破
- 在国内的域名配置中,默认的情况下,域名会默认解析到服务器ip,比如
www.baidu.com
和baidu.com
,前者是设定的ip,也是cdn部署的ip,而后者会在创建域名解析时默认解析到服务器ip,尝试解析后者的ip有可能获取到真实的服务器ip - https://crt.sh/查询子域名,原理是根据ssl证书申请来确认子域名
- https://dnsdb.io/全球DNS搜索引擎
- https://dnsdumpster.com/查询子域名,如果访问到了真实ip的服务器,还会扫描出服务器开放的端口服务的版本
- https://x.threatbook.cn/查询域名的历史解析记录以及备案信息
- https://securitytrails.com查询域名的历史解析记录
- https://tools.ipip.net/cdn.php可以利用国外cdn进行ping操作,发现真实ip
- https://www.get-site-ip.com/直接查询域名的ip,效果不是很好
邮件服务查询
当网站发送邮件时,会从服务器直接发出,如果有些网站拥有邮件验证的过程,可以通过查看邮件原文来获取发送邮件的ip,再根据该ip进行验证
- steam的邮件中通过原文查看到了ip地址,再通过验证,进一步确认是否为服务器的ip地址
国外地址请求
如果网站服务于国内,那么cdn都会部署在国内,通过国外的ip地址请求网站时,就不会经过cdn,但是有些国外的地址也可能经过国内的cdn,推荐尝试冷门的国家来访问
- https://asm.saas.broadcom.com/需要注册付费使用ping功能,地址遍布广
黑暗引擎搜索特定文件
访问网站,找到ico图标文件的路径,计算出该文件的hash值,去shodan查询,获取到一个ip地址
#Python2 开发别搞错了执行环境
#安装 mmh3 失败记得先安装下这个#Microsoft Visual C++ 14.0
import mmh3
import requests
response = requests.get('https://v23gg.com/img/favicon.ico')
favicon = response.content.encode('base64')
hash = mmh3.hash(favicon)
print 'http.favicon.hash:'+str(hash)
最后一次更新于2022-03-16 10:05
0 条评论