导航

cdn绕过的一些总结

#1
CDN简介及浅谈绕过
  CDN全称是内容分发网络。其目的是让用户能够更快速的得到请求的数据。简单来讲,CDN就是用来加速的,他能让用户就近访问数据,简单来说,就是选择离你最近的CDN节点,这样就能更快的获取到需要的数据。

CDN的两种接入方式:
1. 更换域名所使用的DNS服务为CDN提供商的DNS解析服务,并将域名解析到真实IP上。
2. 使用CNAME方式将域名接入CDN。

如何检测目标是否存在CDN?
方法一、超级ping :根据不同地区的服务器对目标系统的一个检测,查看目标返回的IP地址是否是同一个。同一个IP地址没用CDN技术,返回多个IP地址,用了CDN技术
例如:随便ping一个域名,根据返回的IP地址以及IP归属地判断是否启动CDN技术


返回IP地址以及归属地是如果是同一个的话,没有应用CDN技术
在线网站
http://ping.chinaz.com/
http://ping.aizhan.com/
http://itools.com/tool/just-ping
另外使用一些冷门国家(非洲国家,南美国家之类的)的ip去ping很大几率会没有CDN,从而获取到真实ip
在线网站
http://www.webkaka.com/ping.aspx
方法二:nslookup www.xxx.com
返回一个地址,没有启用CDN技术

返回多个地址,启用CDN技术

方法三:
利用工具或者一些网站查询:
https://www.CDNplanet.com/tools/CDNfinder/
http://www.ipip.net/ip.html
https://myssl.com/CDN_check.html
拿最后一个在线网站做个例子:
输入一个没有CDN的网站www.xxx.com

点击查看详情:

提示无法连接,此网站还能看到对应ip,说明该域名不存在CDN。
再检测www.baidu.com


很明显,是存在CDN的。
方法四:
利用Wappalyzer插件:
该插件能够分析目标网站所采用的平台构架、网站环境、服务器配置环境、JavaScript框架、编程语言等参数等



二、绕过CDN寻找真实ip
为什么需要寻找真实ip,这就是之前CDN的作用:它会根据你那个地区,分配一个对应地区的一个节点,能让你访问的更快,达到一个更快的效果。再有CDN的情况下,你直接ping那个网站,得到的IP,都是没用的。
绕过方法如下:
1.        相同国家的ip地址访问
因为CDN费用不便宜,针对某国国内的用户可能只在国内设置CDN,这时你用国外的ip去访问,可能就能查到它的真实IP。
还有一种可能就是,假设这个网站是美国的,其他国家访问此网站访问的都是CDN的IP,而通过美国ip访问时可能不设置CDN。
2.        子域名查询(机率较大)
        如果网站有CDN的话,第一时间就会用全国ping去看,一般国内外都会设置CDN,可能概率比较小,相对来说子域名的话概率就比较大了,因为CDN比较贵,大部分都只会在主站设置CDN,此时可以用子域名查找(要主站跟子域名在同一个服务器上),很大概率会查到真实ip。
子域名工具如下:
subDomainbrute
https://github.com/lijiejie/subDomainsBrute
OneForAll
https://github.com/shmilylty/OneForAll
layer子域名挖掘机
在线子域名:
https://phpinfo.me/domain/
http://tool.chinaz.com/subdomain       
http://scan.javasec.cn/
谷歌语法:"site:baidu.com -www"就能查看除www外的子域名。

3.        查询历史记录
查看IP与域名绑定的历史记录,说不定就能找到使用CDN前的记录。
查询CDN历史记录的网站:
https://x.threatbook.cn/
http://www.17ce.com
http://www.ab173.com/dns/dns_world.php
https://dnsdb.io/zh-cn/
http://viewdns.info/
https://who.is/
http://toolbar.netcraft.com/site_report?url=
https://tools.ipip.net/cdn.php
https://securitytrails.com/
https://whoisrequest.com/history/
https://dnsdumpster.com/
http://www.ip138.com/       
https://www.virustotal.com/gui/home/url
https://research.domaintools.com/research/hosting-history/
https://community.riskiq.com/
https://ipchaxun.com/
http://www.crimeflare.com/cfssl.html
https://sitereport.netcraft.com/?url
https://github.com/vincentcox/bypass-firewalls-by-DNS-history

4.        空间搜索引擎
利用空间搜索引擎,查询目标网站,查看里面的特有http头或者一些关键字,也是有可能发现目标网站的真实IP。
常用空间搜索引擎:
https://fofa.so/
https://www.shodan.io/
https://www.zoomeye.org/
利用“FOFA网络空间安全搜索引擎”搜索目标网站源代码中的title标签内容即可得到真实IP地址。
查看源码获取title       

title="***"

5.        敏感文件(探针或phpinfo.php)
有一些网站可能遗留一些敏感文件,比如phpinfo、探针 还有一些绝对路径
小皮搭建网站时会遗留phpinfo
尤其是国外的网站,会留phpinfo的,探针和phpinfo差不多 探针以p.php
有些程序员在网站搭建完后,有些东西它不删,留下php探针、phpinfo、甚至是phpmyadmin留下来了,phpinfo、php探针都会记录下来服务器真实的IP
常见例子:
p.php php.php phpinfo.php tz.php yahei.php等
谷歌语法:inurl:phpinfo.php intitle:"phpinfo()"

6.        去掉网站域名开头的www
现在大部分CDN厂商只要求把 www.xxx.com的cname到CDN主服务器上去,www.xxx.com和 http://xxx.com 是两条独立的解析记录,一般只会把带有www开头的,比如www.xxx.com 做CDN,根据这样的设置,我们只需要去掉www用超级ping即可发现真实ip。
如:
    ping xxx.com

7.        工具
CloudFail是一种战术侦察工具,旨在收集有关受CloudFlare保护的目标的足够信息,希望能够发现服务器的位置。我们可以用Cloudfail工具进行查询;
工具下载地址:
    https://github.com/m0rtem/CloudFail
使用方法:
    python3 cloudfail.py --target www.xxx.com
python3 cloudfail.py -t www.xxx.com
HatCloud
下载链接
https://github.com/HatBashBR/HatCloud
CloudFlair
https://github.com/christophetd/CloudFlair
通过滥用DNS历史记录绕过防火墙
https://github.com/vincentcox/bypass-firewalls-by-DNS-history

8.        通过邮件获取
通常在订阅邮件、注册账号、找回密码、意见反馈,网站发来验证的邮件,查看邮件源代码,有可能有其真实ip。
此时通过一次性邮箱可以接收,另外在社工钓鱼时也有大用。
利用邮箱注册、邮箱密码找回、邮箱订阅等,通过网站给自己发信息邮件
在线一次性邮箱地址:
第一类:临时邮箱服务
你得到一个随机生成的临时Email地址,这个地址的有效期只有几分钟或者几个小时。
* 10 minute mail(有效期10分钟):http://www.10minutemail.com/
* Guerrilla mail(有效期15分钟):http://www.guerrillamail.com/
第二类: 开放式邮箱服务(推荐)
这一类网站提供的邮箱地址是长期有效的,而且往往允许你挑选任意的用户名。但是,邮箱没有密码保护,任何人都可以查看和使用,而且所有邮件在收到24小时后会自动删除。
* Mailinator:http://www.mailinator.com/
* My Trash Mail:http://www.mytrashmail.com/
第三类:https://anonymousemail.me/ 匿名邮箱可以发邮箱,以后apt要用,钓鱼可以用,在以后项目的时候,往往钓鱼能起到更好的效果。

9.        目标网站漏洞
Web漏洞:通过XSS、代码执行漏洞、SSRF、XXE、文件上传漏洞查找真实IP
信息泄露:Apache status、Jboss status、SVN、Github等敏感信息和网页源代码泄露

10.        ddos(以量打量)

11.        SSL服务器证书
SSL证书就是遵守SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。
查SSL证书:https://crt.sh/
还有使用Censys引擎:https://censys.io/ipv4
使用搜索语法: 443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names: www.xxx.com

12.        扫全网
在手工测试之后,还是没有找到真实IP,才使用脚本,物理电脑网卡带宽等配置要求高,不然电脑就死了,建议使用服务器带宽高的。
脚本地址:
https://github.com/boy-hack/w8fuckCDN
https://github.com/Tai7sy/fuckCDN 是一个扫全网的工具,所以带宽要求高,扫描时间特别久
Zmap:
https://github.com/zmap/zmap
Masscan:
https://github.com/robertdavidgraham/masscan       
xcdn:
https://github.com/3xp10it/xcdn

13.        真实IP地址获取后绑定指向地址更改本地hosts解析指向文件
本机hosts路径:C:\Windows\System32\drivers\etc
输入你所查到的真实ip,对应解析,看是否能正常访问

14.        F5 LTM解码法
当服务器使用F5 LTM做负载均衡时,通过对set-cookie关键字的解码真实ip也可被获取,
F5中的cookies格式如下:
BIGipServer <pool name> = <编码服务器IP>.<编码服务器端口> .0000
从中我们可以得知一下信息:
BIGipServer - 我们现在知道服务器在F5 BigIP设备后面。
<pool name> - F5上配置的池名称。
<编码服务器IP> - 进行编码的服务器的真实IP。
<编码服务器端口> - 进行编码的服务器的真实端口。
例如:Set-Cookie: BIGipServerpool= 2786502848.24095.0000,先把第一段10进制数即2786502848转为十六进制数a616a8c0(如果不够8位,在前面补0),接着分别取两位数,取四次,再倒着排序也就是c0.a8.16.a6,最后依次把他们转为十进制数192.168.67.154,也就是最后的真实ip

15.        社工
利用社工,得到CDN的账号密码,真实ip不就来了(都社工了,只社工真实ip?)

16.        利用老域名
在换新域名时,常常将 CDN 部署到新的域名上,而老域名由于没过期,可能未使用 CDN ,然后就可以直接获取服务器真实 ip
例如 xxx.org - xxx.com
域名更新时,可能老域名同时解析到真实服务器,但是没有部署 CDN
这个可以通过搜集域名备案的邮箱去反查,可能会有意外收获

17.        从App入手
APP是个必不可少的突破口,很多项目网站做的很好,但是APP缺没那么完善,使用burpsuit或者fiddler抓包找真实ip

18.        配置不当
在配置CDN的时候,需要指定域名、端口等信息,有时会因为疏忽,配置不完善导致绕过。
例如:http和https都可以访问,只配置了https协议,这是访问http即可绕过。

19.        favicon_hash 匹配
利用http.favicon.hash 语法,来匹配 icon 的 hash 值。
工具地址:
https://github.com/Ridter/get_ip_by_ico/blob/master/get_ip_by_ico.py
2021-09-08
#2
这篇帖子记录一些自己知道的常用绕过方法,如有其他方法,还望各位表哥能补充一下
2021-09-11
#3
整理的很好记得上次面试实习就被问到cdn相关的了,看完收获是有的
《小白到大佬》从入门到放弃
2021-09-11
#4
总结的很详细
外贸
2021-09-12
#5
我以前看到一文章写得是一个牛逼哄哄的大佬用流量把对面打到没流量了,然后真实IP就有了
来玩啊,大爷
2021-09-12
#6
整理的不错,不过从子域名入手是比较快的,还有就是通过注入漏洞和扫描敏感目录和文件也可以。。。
相信自己,一切皆有可能!!!
2021-09-13
#7
已经很详细了,没想到别的方法了
感觉子站点搞出来的情况和邮箱的这两种概率多一些
2021-10-07
#8
回复 5# My_Idiot
ddos无解
2021-10-07
#9
回复 7# tigger
对的,大部分情况子域名就够了
2022-03-31
#10
回复 1# Alan
第三点,查看IP与域名绑定的历史记录,,这个没看明白,就算真实ip在历史记录里面,我们该怎么区分它,确认它就是真实ip呢??该怎么找啊,大佬带带