js获取ip_绕过CDN去查找真实IP

一、常见方法

1、域名搜集

理论依据是这样的,某些服务商并不会将所有的子域名都部署 CDN,如果能尽量的搜集子域名,或许可以找到一些没有部署 CDN 的子域名。

常见的主要是从这几个方面搜集子域名:

  • SSL 证书
  • 爆破
  • Google Hacking
  • 同邮箱注册人
  • DNS 域传送
  • 页面 JS 搜集
  • 网络空间引擎

2、查询 DNS 历史解析记录

常常服务器在解析到 CDN 服务前,会解析真实 ip,如果历史未删除,就可能找到。

81e6f0c3da688920d97b8ee209de252f.png

DNS解析记录

2、邮件探测记录

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

21c8f9de5134b80c8d360a4066cec67c.png

邮件服务器

3、SSL 证书探测

可以利用空间引擎进行 SSL 证书探测。

93549369ab892a386e798dec9cd44513.png

空间引擎

一个小脚本,可以快速搜集证书

# -*- coding: utf-8 -*-# @Time    : 2019-10-08 22:51# @Author  : Patrilic# @FileName: SSL_subdomain.py# @Software: PyCharmimport requestsimport reTIME_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("(.*?).{}".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 时,会显示证书。

4、偏远地区服务器访问

在偏远地区的服务器访问时,可能不会访问到 CDN 节点,而是直接访问服务器真实 ip,可以搞一个偏远地区的代理池,来访问目标域名,有概率就可以拿到真实 ip。

7151b79f7c35296789c9560edf3aa436.png

多地PING

5、利用老域名

在换新域名时,常常将 CDN 部署到新的域名上,而老域名由于没过期,可能未使用 CDN,然后就可以直接获取服务器真实 ip。域名更新时,可能老域名同时解析到真实服务器,但是没有部署 CDN,这种情况下可以通过搜集域名备案的邮箱去反查,可能会有意外收获。

6、暴力匹配

找到目标服务器 IP 段后,可以直接进行暴力匹配 ,使用 masscan 扫描 HTTP banner,然后匹配到目标域名的相同 banner。

二、其他方法

特殊方法,当然不限于以下方法,还有更好的方法,只是我还没有发现而已,仅供参考。

1、phpinfo

cd71bad22c7e7c0b5f2554c5ca9eb2cf.png

phpinfo

2、favicon_hash

利用 shodan 的 http.favicon.hash 语法,来匹配 icon 的 hash 值, 直接推出。

3、CloudFlare Bypass

还可以通过 DDOS 来消耗对方的流量,只需要把流量打光,就会回到原始 ip。

4、其他

比如有些地方使用的 CDN 都是以 www.xxx.edu.cn开头,这种情况下有可能去掉前缀的 www,就可能绕过 CDN 了,可参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值