CDN相关的技术(CDN绕过)
CDN:内容分发网络,它是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
但是在安全测试过程中,如果目标存在CDN服务,将会影响到后续的安全测试过程。
如何判断目标存在CDN服务?
多个地点Ping服务器,网站测速 - 站长工具 (chinaz.com)
通过ping监测判断网站是否有CDN节点
常见的CDN绕过技术
子域名查询
去掉前面的www再试一次,发现没有上面那么多的ip,说明cdn服务主要加在了含有www的域名地址上。
而解析设置的意思是,在服务器上设置“*”,当用户访问不带www的网址时,自动加上www。
Get Site IP - Find IP Address and location from any URL (get-site-ip.com)
这个网址可以解析网址对应的ip
DNS历史记录=第三方接口(接口查询)
Get Site IP - Find IP Address and location from any URL (get-site-ip.com)
查询"www.sp910.com"结果如下
使用ping监测www.sp910.com
使用ping监测sp910.com
那么这个也是只在www网址上添加了cdn服务
微步在线X情报社区-威胁情报查询_威胁分析平台_开放社区 (threatbook.com)
通过这个进行“结果查询”(收费)
国外有免费网址
https://asm.ca.com/en/ping.php(好像不能用了)
m.sp910.com 手机端 假如没有对手机端网站进行cdn服务,那么也是绕过cdn防护的一个思路
用国外的节点去请求很大概率可以获得真实ip,也是一个思路。
子域名小技巧/采集/国外请求
在线工具有很多,直接搜
比如:子域名查询|ip反查域名 - DNSGrep
用国外的节点去请求很大概率可以获得真实ip,也是一个思路。网站一般不会在热度低的国家设置cdn,所以热度越低的国家,得到的ip越可能是真实地址。
全球 CDN 服务商查询_专业精准的IP库服务商_IPIP
邮件源码测试对比第三方查询
注:此方法是通过邮件源码查看到的ip加上第三方网站查询的ip以及最后修改hosts文件才能最终确认为真实ip。
两种方法
①一些人情世故(不多说
②修改本地hosts
Hosts是一个没有扩展名的系统文件,主要作用是定义IP地址和主机名的映射关系,是一个映射IP地址和主机名的规定。当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,浏览器会立即打开对应网页,如果没有找到,则浏览器会将网址提交DNS服务器进行IP地址解析。
hosts文件路径:C:\Windows\System32\drivers\etc\hosts
用记事本或者notepad打开 对目标网址进行ping检测得到一个ip地址
去掉www进行ping检测得到另一个ip地址
修改hosts文件
再次进行ping检测
生效了。
这个时候浏览器访问这两个网址就打不开了
我们将hosts中的对应ip改为第三方查询的ip地址
这个时候就可以访问了
cdn有可能给多个网站做流量缓存,所以如果是cdn,查询到的ip就打不开网页
查询DNS历史记录
因为有些网站前期没有上CDN服务,所以可以通过查询之前的DNS历史解析记录拿到真实ip地址
https://viewdns.info/
黑暗引擎搜索特定文件(shodan、Fofa)
黑暗引擎指定搜唯一的hash文件
python3计算网页标记的哈希值:
import mmh3
import requests
import base64
response = requests.get('https://www.xxxxx.com/favicon.ico')
favicon = base64.b64encode(response.content)
hash = mmh3.hash(favicon)
print('http.favicon.hash:'+str(hash))
查看源代码得到ico地址
运行得到hash值
放到黑暗引擎中搜索,就能得到真实ip
https://www.shodan.io/
遗留文件,扫描全网
三款工具:fuckcdn w8fuckcdn zmap
w8fuckcdn下载地址:
GitHub - boy-hack/w8fuckcdn: Get website IP address by scanning the entire net 通过扫描全网绕过CDN获取网站IP地址
fuckcdn:
Tai7sy/fuckcdn: CDN真实IP扫描,易语言开发 (github.com)