CDN绕过方法

发布于 2022-04-14  581 次阅读


验证是否存在CDN

多处ping

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

nslookup

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

有 CDN 的示例:

www.163.com
 服务器:  public1.114dns.com
 Address:  114.114.114.114

非权威应答:
 名称:    163.xdwscache.ourglb0.com
 Addresses:  58.223.164.86
             125.75.32.252
 Aliases:  http://www.163.com
           http://www.163.com.lxdns.com

无 CDN 的示例:

xiaix.me
 服务器:  public1.114dns.com
 Address:  114.114.114.114

非权威应答:
 名称:    xiaix.me
 Address:  192.3.168.172

使用工具

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

img

绕过 CDN 查找网站真实 IP

查询历史DNS记录

查看 IP 与 域名绑定的历史记录,可能会存在使用 CDN 前的记录,相关查询网站有:

查询子域名

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

利用网站漏洞

这个就没什么好说的了,目的就是让目标服务器主动来连接我们,这样我们就知道其真实IP了,可用的比如XSS盲打,命令执行反弹shell,SSRF等等。

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

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

使用国外主机解析域名

国内很多 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实IP。这里用到一款全球ping扫工具,热度越低的国家,效果越好。
IPIPtools:https://tools.ipip.net/cdn.php

从 CDN 入手

无论是用社工还是其他手段,反正是拿到了目标网站管理员在CDN的账号了,此时就可以自己在CDN的配置中找到网站的真实IP了。

遗留文件,扫描全网

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

黑暗引擎搜索特定文件

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

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)

空间网络引擎搜索

常见的有以前的钟馗之眼,shodanfofa搜索。以fofa为例,只需输入:title:“网站的title关键字”或者body:“网站的body特征”就可以找出fofa收录的有这些关键字的ip域名,很多时候能获取网站的真实ip

利用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])
Daniel_WRF
最后更新于 2023-09-22