干货-6种CDN绕过技术 – 作者:dgz123456

一、简介

CDN 的全称是 Content Delivery Network,即内容分发网络。CDN 是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器, 通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所 需内容,降低网络拥塞,提高用户访问响应速度和命中率。但在安全测试过 程中,若目标存在 CDN 服务,将会影响到后续的安全测试过程。
image

二、判断

我们该如何判断目标存在 CDN 服务呢?
2.1 用超级ping工具,若目标存在多个IP的话,很有可能采用了CDN服务
爱站网超级ping工具:https://ping.aizhan.com/
站长之家超级ping工具:http://ping.chinaz.com/
image

2.2 还可以使用Windows命令查询:nslookup,若目标存在多个IP的话,就很有可能有CDN服务
image

2.3 使用工具查询,工具地址如下
CDN Planet:https://www.cdnplanet.com/tools/cdnfinder/

三、绕过

3.1-子域名查询

某些企业业务线众多,亦或者成本因素,有些站点的主站使用了CDN服务,或者部分域名使用了CDN服务,某些子域名可能未使用。
当用超级ping检测 www.xxx.com 时,显示有4个IP
image

当用超级ping检测 xxx.com 时,显示只有1个IP,则有可能是目标的真实IP
image

3.2-邮件服务查询

一些站点的邮箱服务可能来自于真实的IP,当给你发邮件时,你可以通过邮件源代码或者邮件头查看到目标的真实IP。
image

3.3-国外地址请求

一些站点由于服务对象基本在国内,或者成本原因,在国外一些地方没有CDN服务,如果用国外的服务器去请求站点域名,则会访问到站点的真实地址。这里用到一款全球ping扫工具,热度越低的国家,效果越好。
IPIPtools:https://tools.ipip.net/cdn.php
image

3.4-遗留文件,扫描全网

一些站点在搭建之初,会用一些文件测试站点,例如“phpinfo()”文件,此类文件里就有可能包含了真实的IP地址。可以利用Google搜索引擎搜索关键字“site:xxx.com inurl:phpinfo.php”,搜索站点是否有遗留文件。
image

3.5-黑暗引擎搜索特定文件

这里的特定文件,指的是站点的icon文件,也就是网站的图标,一般查看网页源代码可以找到,格式大致“http://www.xx.com/favicon.ico”。在shodan搜索网站icon图标的语法为:http.favicon.hash:hash值,hash是一个未知的随机数,我们可以通过shodan语法来查看一个已经被shodan收录的网站的hash值,来进一步获取到所有带有某icon的网站。
那么问题来了,如何获取icon的hash值呢?

3.5.1 python工具

#Python2 开发别搞错了执行环境 
#安装 mmh3 失败记得先安装下这个Microsoft Visual C++ 14.0 
import mmh3 
import requests 
response = requests.get('http://www.xx.com/favicon.ico') 
favicon = response.content.encode('base64') 
hash = mmh3.hash(favicon) 
print 'http.favicon.hash:'+str(hash)

3.5.2 利用FOFA间接获取

FOFA高级会员可以直接搜索icon,但是一般用户可以直接搜索icon,它会返回icon的hash值
image
然后再利用shodan的语法:http.favicon.hash:hash值,就可以进行搜索啦
image
这里我朋友帮写了一个工具,一键生成,万岁

#作者:dgz zhubayi
#时间:2021-6-23
#CSDN:https://blog.csdn.net/AD_CSY
#微信公众号:星河疯客admin
#开发环境:python3
import base64
import requests
from bs4 import BeautifulSoup
import re

parturl1 ="https://www.fofa.so/result?qbase64="
parturl2 = (base64.b64encode(input("请输入favicon地址:").encode('utf-8'))).decode('utf-8')
result = (requests.get(parturl1+parturl2)).text
soup = BeautifulSoup(result,"html.parser")
scripts = soup.select("script")
index=str(scripts[3]).find('icon_hash=')
temp=str(scripts[3])[index:]
icon_hash = str(re.findall("\d+", temp))
print("shodan搜索语法为:http.favicon.hash:"+icon_hash[2:-2])

3.6-DNS 历史记录

站点在使用CDN服务之前,它的真实IP地址可能被DNS服务器所记录到,此时我们就可以通过DNS历史记录找到目标真实IP。
DNSdb:https://dnsdb.io/zh-cn/
image

四、结语

暂时就这些啦,后面如果有更多的姿势,我会继续分享给大家。
有需要的小伙伴关注公众号:星河疯客admin
关注公众号点击“资料领取”,可以获取打包好的资料和工具

来源:freebuf.com 2021-06-24 10:16:02 by: dgz123456

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论