0x01 常見 Bypass 方法
域名搜集
由于成本問題,可能某些廠商并不會将所有的子域名都部署 CDN,是以如果我們能盡量的搜集子域名,或許可以找到一些沒有部署 CDN 的子域名,拿到某些伺服器的真實 ip/ 段
然後關于子域名搜集的方式很多,就不一一介紹了,我平時主要是從這幾個方面搜集子域名:
1、SSL 證書
2、爆破
3、Google Hacking
4、同郵箱注冊人
4、DNS 域傳送
5、頁面 JS 搜集
6、網絡空間引擎
工具也有很多厲害的,平時我一般使用 OneForALL + ESD + JSfinder 來進行搜集,(ESD 可以加載 layer 的字典,很好用)
查詢 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
MX 記錄(郵件探測)
這個很簡單,如果目标系統有發件功能,通常在注冊使用者/找回密碼等地方
SSL 證書探測
我們可以利用空間引擎進行 SSL 證書探測
443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:www.baidu.com
再放一個搜集證書的網站:
https://crt.sh
一個小腳本,可以快速搜集證書
# -*- coding: utf-8 -*-# @Time : 2019-10-08 22:51# @Author : Patrilic# @FileName: SSL_subdomain.py# @Software: PyCharm
import requestsimport re
TIME_OUT = 60def 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")
複制
還有一種方式,就是搜集 SSL 證書 Hash,然後周遊 ip 去查詢證書 hash,如果比對到相同的,證明這個 ip 就是那個 域名同根證書的伺服器真實 ip
簡單來說,就是周遊 0.0.0.0/0:443,通過 ip 連接配接 https 時,會顯示證書
當然,也可以用 censys 等引擎
偏遠地區伺服器通路
在偏遠地區的伺服器通路時,可能不會通路到 CDN 節點,而是直接通路伺服器真實 ip
是以我們可以搞一個偏遠地區的代理池,來通路目标域名,有機率就可以拿到真實 ip
也就是平常說的多地 Ping
favicon_hash 比對
利用 shodan 的 http.favicon.hash 文法,來比對 icon 的 hash 值, 直接推:
https://github.com/Ridter/get_ip_by_ico/blob/master/get_ip_by_ico.py
CloudFlare Bypass
免費版的 cf,我們可以通過 DDOS 來消耗對方的流量,隻需要把流量打光,就會復原到原始 ip
還有利用 cloudflare 的改 host 傳回示例:
https://blog.detectify.com/2019/07/31/bypassing-cloudflare-waf-with-the-origin-server-ip-address/
裡面給了詳細的介紹,我們可以通過 HOST 來判斷是否是真實 ip, 具體看文章即可
奇特的 ping
比如可能有些地方,使用的 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
例如:
我這裡其實是 ping 了 www.xxx.xxx.cn 和 xxx.xxx.cn
這樣就可以繞過 CDN 的檢測
利用老域名
在換新域名時,常常将 CDN 部署到新的域名上,而老域名由于沒過期,可能未使用 CDN,然後就可以直接擷取伺服器真實 ip。
例如 patrilic.top > patrilic.com
域名更新時,可能老域名同時解析到真實伺服器,但是沒有部署 CDN
這個可以通過搜集域名備案的郵箱去反查,可能會有意外收獲
暴力比對
找到目标伺服器 IP 段後,可以直接進行暴力比對 ,使用 masscan 掃描 HTTP banner,然後比對到目标域名的相同 banner
最後是 DDos/ 社工 CDN 平台等
0x02 其他方法
phpinfo
ssrf,檔案上傳等漏洞
略..
0x03 參考連結
https://github.com/shmilylty/OneForAll
https://github.com/FeeiCN/ESD
https://github.com/Threezh1/JSFinder
https://github.com/AI0TSec/blog/issues/8
https://www.4hou.com/tools/8251.html
https://www.freebuf.com/sectool/112583.html