zoukankan      html  css  js  c++  java
  • 绕过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
  • 相关阅读:
    GCD HDU
    Finding Lines UVALive
    Chinese Mahjong UVA
    DNA Evolution CodeForces
    String Reconstruction (并查集)
    Number Cutting Game HDU
    Paint the Wall ZOJ
    Star sky CodeForces
    Haunted Graveyard ZOJ
    GuGuFishtion HDU
  • 原文地址:https://www.cnblogs.com/H4ck3R-XiX/p/12708692.html
Copyright © 2011-2022 走看看