目录
  1. 1. 如何判断网站是否具有 CDN
  2. 2. 域名收集
  3. 3. 查询 DNS 历史解析记录
  4. 4. FOFA & Censys
  5. 5. 偏远地区服务器访问
  6. 6. WWW法
  7. 7. nslookup法
  8. 8. 钓鱼
  9. 9. MX记录
  10. 10. 信息泄漏
Bypass CDN

如何判断网站是否具有 CDN

通过在线的多地ping,通过每个地区ping的结果得到IP。
看这些IP是否一致,如果都是一样的,极大可能不存在cdn,但不绝对。
如果这些IP大多数都不太一样或者规律性很强,可以尝试查询这些IP的归属地,判断是否存在CDN。

https://wepcc.com
http://ping.chinaz.com
https://asm.ca.com/en/ping.php
https://ping.aizhan.com/
http://www.just-ping.com/
http://tools.fastweb.com.cn/Index/Ping

域名收集

由于成本问题,可能某些厂商并不会将所有的子域名都部署 CDN,所以如果我们能尽量的搜集子域名,或许可以找到一些没有部署 CDN 的子域名,拿到某些服务器的真实 ip/ 段

1、SSL 证书
2、爆破
3、Google Hacking
4、同邮箱注册人
4、DNS 域传送
5、页面 JS 搜集
6、网络空间引擎

查询 DNS 历史解析记录

查询目标域名历史解析记录可能会找到部署CDN前的解析记录(真实IP地址)

http://viewdns.info/
https://x.threatbook.cn/
http://www.17ce.com/
https://dnsdb.io/zh-cn/
https://securitytrails.com/
http://www.ip138.com/
https://github.com/vincentcox/bypass-firewalls-by-DNS-history
https://domain.8aq.net
https://webiplookup.com
https://toolbar.netcraft.com/site_report

FOFA & Censys

利用“FOFA网络空间安全搜索引擎”搜索网站源代码中的title标签内容即可得到真实IP地址。
title="*** ***** – Multi Asset Fund"

利用“Censys网络空间搜索引擎”搜索网站的SSL证书及HASH,在收集证书的网站https://crt.sh上查找目标网站SSL证书的HASH,然后再用Censys搜索该HASH即可得到真实IP地址。
443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:***trade.com

@Patrilic 快速收集证书的脚本

# -*- coding: utf-8 -*-
# @Time : 2019-10-08 22:51
# @Author : Patrilic
# @FileName: SSL_subdomain.py
# @Software: PyCharm

import requests
import re

TIME_OUT = 60
def get_SSL(domain):
domains = []
url = 'https://crt.sh/?q=%25.{}'.format(domain)
response = requests.get(url,timeout=TIME_OUT)
# print(response.text)
ssl = re.findall("<TD>(.*?).{}</TD>".format(domain),response.text)
for i in ssl:
i += '.' + domain
domains.append(i)
print(domains)

if __name__ == '__main__':
get_SSL("baidu.com")

偏远地区服务器访问

多地 ping

在偏远地区的服务器访问时,可能不会访问到 CDN 节点,而是直接访问服务器真实 ip

所以我们可以搞一个偏远地区的代理池,来访问目标域名,有概率就可以拿到真实 ip

国外的多节点ping工具,例如just-ping,全世界几十个节点ping目标域名,很有可能找到真实ip。
域名:http://www.just-ping.com/

WWW法

可能去掉前缀的 www,就可能绕过 CDN 了

比如可能有些地方,使用的 CDN 都是以 www.xxx.edu.cn ,例如 www.cuit.edu.cn ,www.jwc.cuit.edu.cn
可能去掉前缀的 www,就可能绕过 CDN 了,猜测应该是类似于 Apache VirtualHost, 可参考
https://httpd.apache.org/docs/2.4/en/vhosts/examples.html

nslookup法

大部分CDN提供商只针对国内市场,而对国外市场几乎是不做CDN,所以有很大的几率会直接解析到真实IP。其实这个方法根本不用上国外vpn,因为你上国外vpn的ping本质,就是使用国外dns(那台vpn服务器使用的dns)查询域名而已,所以只需要命令:

nslookup www.xxxx.com 8.8.8.8

提示:要找国外冷门DNS才行,像谷歌的DNS,国内用的人越来越多了,很多CDN提供商都把谷歌DNS作为国内市场之一,所以,你查到的结果会和国内差不了多少。或者查询域名的NS记录,其域名记录中的MX记录,TXT记录等很有可能指向的是真实ip或同C段服务器。

钓鱼

网站发送的邮件一般是从自己服务器发出来的,不经过CDN。

不管网站怎么CDN,其向用户发的邮件一般都是从自己服务器发出来的。以wordpress为例,假如我要报复一个来我这捣乱的坏蛋,坏蛋使用了 CDN,我要找到它的真实ip以便DDOS他。我的方法是在他博客上留言,再自己换个名回复自己,然后收到他的留言提醒邮件,就能知道发邮件的服务器ip 了。如果他没开提醒功能,那就试试他是不是开启了注册功能,wordpress默认是用邮件方式发密码的。
思考一下,还有哪些信息是不通过CDN返回给用户的呢?

rss订阅/忘记密码:一般也会得到真实的IP地址,通过rss订阅的方式,可以查找到订阅的消息中真实IP。

看订阅邮件:有的服务器本地自带sendmail(邮件传输代理程序)注册之后,会主动发一封邮件给我们,打开邮件的源代码,你就能看到服务器的真实ip了。有的大型互联网网站会有自己的Mailserver。但是应该会在一个网段,扫下C段地址就行。
web版的邮件管理,可以通过常看网页源代码看到IP。

MX记录

目标系统有发件功能,通常在 注册用户/找回密码等地方

信息泄漏

phpinfo、Apache status和Jboss status敏感信息泄露,网页源代码泄露,SVN、Github信息泄露等。

如phpinfo

参考链接:
绕过CDN查找真实IP方法总结
绕过 CDN 寻找真实 IP 地址的各种姿势
https://www.hacking8.com/MiscSecNotes/bypass-cdn-find-ip.html

文章作者: P2hm1n
文章链接: http://yoursite.com/2019/12/13/Bypass-CDN/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 P2hm1n‘s Blog

评论