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

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

0x01.域名蒐集

因爲成本問題,可能某些廠商並不會將全部的子域名都部署 CDN,因此若是咱們能儘可能的蒐集子域名,或許能夠找到一些沒有部署 CDN 的子域名,拿到某些服務器的真實 ip/ 段。而後關於子域名蒐集的方式不少,就不一一介紹了,我平時主要是從這幾個方面蒐集子域名:html

一、SSL 證書
二、爆破
三、Google Hacking
四、同郵箱註冊人
五、DNS 域傳送
六、頁面 JS 蒐集
七、網絡空間引擎python

工具也有不少厲害的,平時我通常使用 OneForALL + ESD + JSfinder 來進行蒐集。git

0x02.查詢 DNS 歷史解析記錄

經常服務器在解析到 CDN 服務前,會解析真實 ip,若是歷史未刪除,就可能找到
github

經常使用網站:apache

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.shapp

一個小腳本,能夠快速蒐集證書dom

# -*- 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
相關文章
相關標籤/搜索