繞過CDN查找真實 IP 姿勢總結


返回域名解析對應多個 IP 地址,網站可能部署CDN業務,我們就需要bypass CDN,去查找真正的服務器ip地址

0x01.域名搜集

由於成本問題,可能某些廠商並不會將所有的子域名都部署 CDN,所以如果我們能盡量的搜集子域名,或許可以找到一些沒有部署 CDN 的子域名,拿到某些服務器的真實 ip/ 段。然后關於子域名搜集的方式很多,就不一一介紹了,我平時主要是從這幾個方面搜集子域名:

1、SSL 證書
2、爆破
3、Google Hacking
4、同郵箱注冊人
5、DNS 域傳送
6、頁面 JS 搜集
7、網絡空間引擎

工具也有很多厲害的,平時我一般使用 OneForALL + ESD + JSfinder 來進行搜集。

0x02.查詢 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

0x03.MX 記錄(郵件探測)

如果目標系統有發件功能,如注冊賬號/找回密碼/RSS訂閱

0x04.SSL 證書探測

我們可以利用空間引擎進行 SSL 證書探測
443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:www.xxx.com443.https.tls.chain.parsed.names

https://censys.io/
https://www.shodan.io/
https://fofa.so/
https://www.zoomeye.org/

再放一個搜集證書的網站:
https://crt.sh

一個小腳本,可以快速搜集證書

# -*- 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")

還有一種方式,就是搜集 SSL 證書 Hash,然后遍歷 ip 去查詢證書 hash,如果匹配到相同的,證明這個 ip 就是那個 域名同根證書的服務器真實 ip

簡單來說,就是遍歷 0.0.0.0/0:443,通過 ip 連接 https 時,會顯示證書。

0x05.偏遠地區服務器訪問

在偏遠地區的服務器訪問時,可能不會訪問到 CDN 節點,而是直接訪問服務器真實 ip

所以我們可以搞一個偏遠地區的代理池,來訪問目標域名,有概率就可以拿到真實 ip

也就是平常說的多地 Ping

0x06.favicon_hash 匹配

利用 shodan 的 http.favicon.hash 語法,來匹配 icon 的 hash 值, 直接推:

https://github.com/Ridter/get_ip_by_ico/blob/master/get_ip_by_ico.py

0x07.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, 具體看文章即可

0x08.奇特的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

0x09.利用老域名

在換新域名時,常常將 CDN 部署到新的域名上,而老域名由於沒過期,可能未使用 CDN,然后就可以直接獲取服務器真實 ip。

例如 patrilic.top > patrilic.com

域名更新時,可能老域名同時解析到真實服務器,但是沒有部署 CDN

這個可以通過搜集域名備案的郵箱去反查,可能會有意外收獲

0x10.其他方法

上傳phpinfo、ssrf等漏洞


參考鏈接

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM