一、什么是CDN
CDN(Content Delivery Network),内容分发网络。使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
二、如何判断目标存在CDN服务
利用多节点技术进行请求返回进行判断
ITDOG/在线ping_多地ping_多线路ping_持续ping_网络延迟测试_服务器延迟测试 (itdog.cn)
通过多地Ping,根据节点返回信息判断是否存在CDN节点。
三、CDN绕过技术
子域名查询
case1:当主站和子域名在同一服务器上,一般主站会进行配置CDN结点服务,但是子域名没做CDN服务,即可查询子域名IP从而推断出主站IP。
case2:当主站和子域名在同网段,可通过扫描工具在该网段进行扫描探活。
邮件服务查询
1、企业邮箱服务器一般不会做CDN服务,找到邮箱服务器从而找到目标站点真实IP。
2、从邮箱服务器获取邮件,邮件不会走就近CDN节点。
国外地址请求
企业的目标客户一般情况下均为国内,不会在国外部署CDN节点,从而在国外地址请求会从真实IP响应请求。
遗留文件,扫描全网
遗留文件:像网站的PHP info,PHPinfo中有IP信息,很有可能就是真实IP。
扫描全网:利用工具,从全国各地访问目标站点,收集返回IP地址,进而分析真实IP。
黑暗引擎搜索特定文件
zoomEye
fofa
shodan
特定文件:可以搜索文件的Hash值。
DNS历史记录,以量打量
DNS历史记录:通过查询网站DNS记录,可能某一站建站之初未部署CDN,通过历史记录可以看到真实IP。
以量打量:其实就是DDOS,将网站的CDN流量打光,这样就能直接访问真实IP。
四、案例分享
4.1 子域名解析——知乎
可以通过子域名查询工具,多搜集些子域名。
超级ping——www.zhihu.com
超级ping——zhihu.com
为什么?
目标站点在域名解析设置中
主机记录 记录类型 解析线路 记录值 TTL * A 默认 xx.xx.xx.xx 10 www A 自定义线路 xx.xx.xx.xx 10 在对域名进行解析时,若是www.zhihu.com则会通过CDN服务返回信息;如果直接访问zhihu.com,则不会通过CDN服务返回信息,而是从真实服务器返回信息。
4.2 DNS历史记录(第三方接口查询)——SP910.com
第三方接口网站DNS历史记录查询,可提供参考,是否为真实IP还需要多方验证。
https://x.threatbook.com/
4.3 国外地区请求
选取一个冷门国家访问目标站点,对于冷门国家来说一般不会部署CDN。
有钱,文明上网。(不做教程)
没钱,寻找网上国外Ping网站,寻找冷门国家的响应IP
国外的一个ping网站,目前也没找到好用的网站。
4.4 邮件服务查看源码
拿到IP之后还需要验证。查询目标网站的其他信息,验证IP归属地与实际情况是否一致。
4.5 黑暗引擎——shodan
shodan搜索指定hash文件
在此之前
# 获取目标网站的文件的hash值 import mmh3 import request response = requests.get("http://www.xx.com/favicon.ico") favicon = response.content.encode("base64") hash = mmh3.hash(favicon) print("http://www.xx.com/favicon.ico:",str(hash))
后续
在shodan中搜索hash文件(搜索语法我也不熟悉,建议先学习搜索语法释意,再进行语法搜索。)
shodan搜索引擎保姆级教程
为什么能?
某一文件没有进行缓存,所以搜索文件特定的hash数据可以得到目标站点真实IP地址。
4.6 扫全网
fuckCDN
w8fuckcdn
w8fuckcdn 通过扫描全网绕过CDN获取网站IP地址_fackcdn-CSDN博客
zmap
注意:使用工具,扫80端口,很可能由于防护软件从而扫描失败,导致无法发现真实IP。