绕过CDN获取服务器真实IP地址
相关视频链接:(https://blog.sechelper.com/20220914/penetration-testing-guide/cdn-bypass)
CDN(Content Delivery Network) 内容分发网络。使用户就近获取所需内容,降低网络拥塞,提高响应速度。
网络空间搜索引擎
分析下网站关键元素信息
- 域名
- ip
- title
- icp
- logo
- body
以佛法为例子,其它引擎用法看文章后面
"sechelper.com" |
使用以上搜索语法可以收集到更多域名和IP信息。还可以结合公司地理位置、云厂商、IDC机房等多种因素精准搜索,例如:
asn="37963" && title="至察助安" |
参考:
什么是 ASN?
Shodan
Shodan是世界上第一个互联网连接设备搜索引擎。了解互联网智能如何帮助您做出更好的决策。
示例 | 说明 |
---|---|
HTTP Strict-Transport-Security | 需要HTTPS连接的网站 |
product:Apache | Apache web服务器 |
http.html:Apache | 在HTML中包含“Apache”一词的网站 |
Apache | 标题中有“Apache”一词的服务 |
hostname:google.com,facebook.com | 主机名包含“google.com”或“facebook.com”的服务 |
http.component:bootstrap | 使用Bootstrap CSS框架的网站 |
ssl.version:tlsv1.3 HTTP | 支持TLS 1.3的网站 |
ssl.alpn:h2 | 支持HTTP/2的网站 |
ssl.version:sslv2 -ssl.version:tlsv1,tlsv1.2,tlsv1.3 | 支持SSLv2但不支持TLS的服务 |
ssl.cert.subject.cn:google.com | 为*.google.com颁发证书的SSL服务(HTTPS、SMTPS、POP3等) |
ssl.cert.subject.cn:google.com -HTTP | 为*.google.com颁发证书的非HTTPS SSL服务 |
ssh port:22,3333 | 端口22或3333上的SSH |
ssh -port:2222 | 非标准端口上的SSH |
has_screenshot:true rfb disabled port:80,443 | 隐藏在公共web端口后面的公共VNC服务 |
has_screenshot:true encrypted attention | 搜索远程桌面中的OCR,以查看是否被勒索软件破坏 |
screenshot.label:ics | 基于机器学习的工业控制系统辨识 |
tag:ics | 运行工业协议的工业控制系统(即无网络服务器) |
vuln:CVE-2014-0160 | 易受心脏出血影响的服务 |
vuln:CVE-2019-19781 country:DE,CH,FR | 德国、瑞士或法国可能存在CVE-2019-19781漏洞的服务器 |
更多实例:
https://www.shodan.io/search/filters
https://www.shodan.io/search/examples
FOFA
FOFA 是白帽汇推出的一款网络空间搜索引擎,它通过进行网络空间测绘,能够帮助研究人员或者企业迅速进行网络资产匹配,例如进行漏洞影响范围分析、应用分布统计、应用流行度排名统计等。
逻辑连接符 | 具体含义 |
---|---|
= | 匹配,=""时,可查询不存在字段或者值为空的情况 |
== | 完全匹配,==""时,可查询存在且值为空的情况 |
&& | 与 |
|| | 或者 |
!= | 不匹配,!=""时,可查询值为空的情况 |
~= | 正则语法匹配专用 |
() | 确认查询优先级,括号内容优先级最高 |
搜索实例
例子 | 说明 |
---|---|
title=“beijing” | 从标题中搜索“beijing” |
header=“elastic” | 从http头中搜索“elastic” |
body=“商城” | 从html正文中搜索“商城” |
fid=“sSXXGNUO2FefBTcCLIT/2Q==” | 查找相同的网站指纹 |
domain=“qq.com” | 搜索根域名带有qq.com的网站。 |
icp=“京ICP证030173号” | 查找备案号为“京ICP证030173号”的网站 |
js_name=“js/jquery.js” | 查找网站正文中包含js/jquery.js的资产 |
js_md5=“82ac3f14327a8b7ba49baa208d4eaa15” | 查找js源码与之匹配的资产 |
cname=“ap21.inst.siteforce.com” | 查找cname为"ap21.inst.siteforce.com"的网站 |
cname_domain=“siteforce.com” | 查找cname包含“siteforce.com”的网站 |
icon_hash=“-614101761” | 搜索使用此 icon 的资产 |
host=“.gov.cn” | 从url中搜索”.gov.cn” |
port=“6379” | 查找对应“6379”端口的资产 |
ip=“1.1.1.1” | 从ip中搜索包含“1.1.1.1”的网站 |
ip=“220.181.111.1/24” | 查询IP为“220.181.111.1”的C网段资产 |
status_code=“402” | 查询服务器状态为“402”的资产 |
protocol=“quic” | 查询quic协议资产 |
country=“CN” | 搜索指定国家(编码)的资产。 |
city=“Beijing” | 搜索指定城市的资产。 |
cert=“baidu” | 搜索证书(https或者imaps等)中带有baidu的资产。 |
cert.subject=“Oracle Corporation” | 搜索证书持有者是Oracle Corporation的资产 |
cert.issuer=“DigiCert” | 搜索证书颁发者为DigiCert Inc的资产 |
cert.is_valid=true | 验证证书是否有效,true有效,false无效 |
jarm=“2ad…83e81” | 搜索JARM指纹 |
banner=“users” && protocol=“ftp” | 搜索FTP协议中带有users文本的资产。 |
asn=“19551” | 搜索指定asn的资产。 |
after=“2017” && before=“2017-10-01” | 时间范围段搜索 |
app=“Microsoft-Exchange” | 搜索Microsoft-Exchange设备 |
server==“Microsoft-IIS/10” | 搜索IIS 10服务器。 |
os=“centos” | 搜索CentOS资产。 |
type=“service” | 搜索所有协议资产,支持subdomain和service两种 |
钟馗之眼
ZoomEye 支持对公网开放的 IPv4、IPv6 及域名地址库进行多个端口服务或协议的探测,并整理收集相关返回 banner 数据提供搜索匹配。
ZoomEye 线上采用“覆盖式”更新模式:比如第一次扫描 IP 8.8.8.8 开放了 80 端口,第二次扫描 8.8.8.8 的 80
端口时,如果端口还存活,那么会用第二次扫描的结果覆盖更新第一次的扫描结果;如果第二次扫描时候 80
端口已经关闭,服务不存在,那么第一次扫描的结果不会被更新,时间节点也不会被更新。
搜索
用户在搜索输入框里输入对应关键字符串、语法词(也称为“过滤器”)及相关运算符进行检索。用户输入的关键字符串不区分大小写,在做全词匹配比如字符串里存在空格等字符时请使用引号闭合词组。
输入的字符串通过 ZoomEye
搜索引擎分词系统进行分词匹配,分词规则可使用搜索结果页面里“分词”功能帮助测试理解。输入语法词(也称为“过滤器”)后,搜索框提供了智能搜索提示:比如输入“思科”
或者“Cisco”
在搜索框下拉栏里会显示相关的 app 语法,选中后按“回车”即可进行检索。对于更多的组件指纹可以访问顶栏里的"导航"页面获取。
逻辑运算
逻辑词 | 说明 | 示例 |
---|---|---|
空格 | 在搜索框中输入“空格”则表示“或”的运算逻辑 | [service:“ssh” service:“http”](https://www.zoomeye.org/searchResult?q=service%3A"ssh" service%3A"http") 搜索ssh或http协议的数据 |
+ | 在搜索框中输入“+”则表示“且”的运算逻辑 | device:“router”+after:“2020-01-01” 搜索2020-01-01后路由器的数据 |
- | 在搜索框中输入“-”则表示“非”的运算逻辑 | [country:“CN”-subdivisions:“beijing”](https://www.zoomeye.org/searchResult?q=country%3A"CN" -subdivisions%3A"beijing") 搜索中国地区内除北京的数据 |
() | 在搜索框中输入“()”则表示“优先处理”的运算逻辑 | (port:“80”+subdivisions:“加利福尼亚州”)+before:“2020-01-01” 搜索2020-01-01前在加利福尼亚州开放的80端口数据 |
地理位置
(注:中国地区资产只对中国IP及手机号码认证用户开放)
语法 | 说明 | 注 |
---|---|---|
country:“CN” | 搜索国家地区资产 | 可以使用国家缩写,也可以使用中/英文全称如country:“中国” country:“china” |
subdivisions:“beijing” | 搜索相关指定行政区的资产 | 中国省会支持中文及英文描述搜索 subdivisions:“北京” |
city:“changsha” | 搜索相关城市资产 | 中国城市支持中文及英文描述搜索如 city:长沙 |
** 证书搜索**
语法 | 说明 | 注 |
---|---|---|
ssl:“google” | 搜索ssl证书存在"google"字符串的资产 | 常常用来提取产品名及公司名搜索对应目标 |
** IP及域名信息相关搜索**
语法 | 说明 | 注 |
---|---|---|
ip:“8.8.8.8” | 搜索指定IPv4地址相关资产 | |
ip:“2600:3c00::f03c:91ff:fefc:574a” | 搜索指定IPv6地址相关资产 | |
cidr:52.2.254.36/24 | 搜索IP的C段资产 | cidr:52.2.254.36/16 为IP的B段资产,cidr:52.2.254.36/8 为IP的A段资产 |
org:“北京大学” 或者 organization:“北京大学” | 搜索相关组织(Organization)的资产 | 常常用来定位大学、结构、大型互联网公司对应IP资产 |
[isp:“China Mobile”](https://www.zoomeye.org/searchResult?q=isp%3A"China Mobile") | 搜索相关网络服务提供商的资产 | 可结合org数据相互补充 |
asn:42893 | 搜索对应ASN(Autonomous system number)自治系统编号相关IP资产 | |
port:80 | 搜索相关端口资产 | 目前不支持同时进行多端口目标搜索 |
hostname:google.com | 搜索相关IP"主机名"的资产 | |
site:baidu.com | 搜索域名相关的资产 | 搜索域名相关的资产 |
指纹相关搜索
语法 | 说明 | 注 |
---|---|---|
[app:“Cisco ASA SSL VPN”](https://www.zoomeye.org/searchResult?q=app%3A"Cisco ASA SSL VPN") | 搜索思科ASA-SSL-VPN的设备 | 更多的app规则请参考“导航”,在搜索框输入"思科"等关键词会有相关app提示 |
service:“ssh” | 搜索对应服务协议的资产 | 常见服务协议包括:http、ftp、ssh、telnet等等(其他服务可参考搜索结果域名侧栏聚合展示) |
device:“router” | 搜索路由器相关的设备类型 | 常见类型包括router(路由器)、switch(交换机)、storage-misc(存储设备)等等(其他类型可参考搜索结果域名侧栏聚合展示) |
os:“RouterOS” | 搜索相关操作系统 | 常见系统包括Linux、Windows、RouterOS、IOS、JUNOS等等(其他系统可参考搜索结果域名侧栏聚合展示) |
title:“Cisco” | 搜索html内容里标题中存在"Cisco"的数据 | |
industry:“政府” | 搜索行业类型相关的资产 | 常见的行业类型包括科技、能源、金融制造业等等(其他类型可结合org数据相互补充) |
时间节点区间搜索
语法 | 说明 | 注 |
---|---|---|
[after:“2020-01-01” +port:“50050”](https://www.zoomeye.org/searchResult?q=after%3A"2020-01-01" +port%3A"50050") | 搜索更新时间为"2020-01-01"端口为"50050"以后的资产 | 时间过滤器需组合其他过滤器使用 |
[before:“2020-01-01” +port:“50050”](https://www.zoomeye.org/searchResult?q=before%3A"2020-01-01" +port%3A"50050") | 搜索更新时间在"2020-01-01"端口为"50050"以前的资产 | 时间过滤器需组合其他过滤器使用 |
Jarm
Jarm是一个活动的传输层安全性(TLS)服务器指纹识别工具, 详情参考:https://github.com/salesforce/jarm
语法 | 说明 | 注 |
---|---|---|
jarm: “29d29d15d29d29d00029d29d29d29dea0f89a2e5fb09e4d8e099befed92cfa” | 搜索相关jarm内容的资产 |
Dig
语法 | 说明 | 注 |
---|---|---|
[dig:“baidu.com 220.181.38.148”](https://www.zoomeye.org/searchResult?q=dig%3A"baidu.com 220.181.38.148") | 搜索相关dig内容的资产 |
Iconhash
语法 | 说明 | 注 |
---|---|---|
iconhash:“f3418a443e7d841097c714d69ec4bcb8” | 通过 md5 方式对目标数据进行解析,根据图标搜索相关内容的资产 | 搜索包含“google”图标的相关资产 |
iconhash:“1941681276” | 通过 mmh3 方式对目标数据进行解析,根据图标搜索相关内容的资产 | 搜索包含“amazon”图标的相关资产 |
Filehash
语法 | 说明 | 注 |
---|---|---|
filehash:“0b5ce08db7fb8fffe4e14d05588d49d9” | 通过上传方式进行查询,根据解析的文件数据搜索相关内容的资产 | 搜索包含“Gitlab”解析的相关资产 |
Censys
Censys帮助组织、个人和研究人员发现并监控互联网上的每台服务器,以减少暴露并提高安全性。
更多实例:
https://search.censys.io/search/examples?resource=hosts
异地PING
邮件头
大型公司邮件服务可能是自建的,从服务器内发出的邮件头会带着IP,这个极有可能是目标真实IP地址。foxmail导出邮件使用编辑器打开,可以看到一下内容。
Received: from wfbtxcdk.outbound-mail.sendgrid.net (unknown [159.183.172.209]) |
邮箱头查看真实IP,确定不是使用的第三方邮箱再看,否则就是浪费时间,使用nslookup
查询mx
记录
$ nslookup |
域传送漏洞
DNS协议支持使用axfr类型的记录进行区域传送,用来解决主从同步的问题。如果管理员在配置DNS服务器的时候没有限制允许获取记录的来源,将会导致DNS域传送漏洞。
*注意:*DNS配置错误才会出现域传送漏洞,打点时可以使用脚本批量探测。
vulab@sechelper:~$ nmap --script dns-zone-transfer.nse --script-args "dns-zone-transfer.domain=vulhub.org" -Pn -p 53 192.168.111.133 |
参考:
域名解析历史记录
域名历史解析记录,可以继续使用查出的IP地址反查域名,能够获取更多信息。

编辑
关注 至察助安 ,专注网络安全优质知识分享,无优质,不分享。
绕过CDN获取服务器真实IP地址的更多相关文章
- 绕过CDN查找网站真实IP方法收集
方法1很简单,使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 网站有: http://ping.chinaz.com/ http://pi ...
- 绕过CDN测试出真实IP
前言 CDN的全称是Content Delivery Network,即内容分发网络.CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡.内容分发.调度等功能模块 ...
- 绕过CDN查找网站真实ip
在渗透测试过程中,经常会碰到网站有CDN的情况.CDN即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题.说的简单点,就是一组在不同运营商之间的对接点上的高速缓存服务器,把 ...
- 获取客户端真实IP地址
Java-Web获取客户端真实IP: 发生的场景:服务器端接收客户端请求的时候,一般需要进行签名验证,客户端IP限定等情况,在进行客户端IP限定的时候,需要首先获取该真实的IP. 一般分为两种情况: ...
- Java 获取客户端真实IP地址
本文基于方法 HttpServletRequest.getHeader 和 HttpServletRequest.getRemoteAddr 介绍如何在服务器端获取客户端真实IP地址. 业务背景 服务 ...
- 伪造IP及获取客户端真实IP地址
Fiddler支持自定义规则,可以实现对HTTP请求数据发送给Server前或HTTP应答数据发送给浏览器前进行修改.下面的例子将演示如何向所有HTTP请求数据中增加一个头.1)打开Fiddler,点 ...
- Java中使用HttpRequest获取用户真实IP地址端口
import javax.servlet.http.HttpServletRequest; /** * 自定义访问对象工具类 * * 获取对象的IP地址等信息 * @author X-rapido * ...
- Java获取客户端真实IP地址
Java代码 import javax.servlet.http.HttpServletRequest; /** * 获取对象的IP地址等信息 */ public class IPUtil { /** ...
- java如何获取访问真实IP地址?
java如何获取访问真实IP地址 解决方法: 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址,如果没有代理,则获取真实ip public static String getIp( ...
随机推荐
- Linux查看内网服务器的出口IP
查看内网服务器的出口IPcurl ifconfig.me [root@vpnserver ~]# curl ifconfig.me111.10.100.100 [root@vpnserver ~]#
- Oracle归档日志暴增排查优化
1.ORACLE归档日志介绍 归档日志暴增是oracle比较常见的问题,遇到归档日志暴增,我们该如何排查: 归档日志暴增一般都是应用或者人为引起的 理解归档日志存储的是什么 如何排查归档日志暴增原因 ...
- 在 SQL Server 中使用 Try Catch 处理异常
如何在 SQL Server 中使用 Try Catch 处理错误? 从 SQL Server 2005 开始,我们在TRY 和 CATCH块的帮助下提供了结构错误处理机制.使用TRY-CATCH的语 ...
- MySQL原理
MySQL基础: sql语句的执行过程: 连接器:登录连接sql数据库 分析器:分析解读sql语句,并检查是否符合SQL语法规则 优化器:对实现方式进行优化,比如在查询时决定使用哪个索引. 执行器:执 ...
- mvc Ensure that HttpConfiguration.EnsureInitialized()
The object has not yet been initialized. Ensure that HttpConfiguration.EnsureInitialized() is called ...
- ooday07 Java_接口
笔记: 接口: 是一种引用数据类型 由interface定义 只能包含常量和抽象方法------默认权限是public 接口不能被实例化 接口是需要被实现/继承,实现/派生类:必须重写所有抽象方法 一 ...
- JUC源码学习笔记2——AQS共享和Semaphore,CountDownLatch
本文主要讲述AQS的共享模式,共享和独占具有类似的套路,所以如果你不清楚AQS的独占的话,可以看我的<JUC源码学习笔记1> 主要参考内容有<Java并发编程的艺术>,< ...
- $\mathcal{A\,F\,O}$
突然间,告诉我不用学计算机了 真的有点像是做梦 回忆自己的OI生涯 真的不知从何说起 小学的时候 被家长哄着报名了当时很热门的 logo语言 在炎热的夏天,电脑里小海龟的步伐从未停歇 那时的自己很骄傲 ...
- 新建 Microsoft Office Word 文档 来源:牛客网
题目 链接:https://ac.nowcoder.com/acm/contest/28886/1015 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其 ...
- 【PMP学习笔记】第1章 PMP体系引论
一.什么是项目? 项目是为创造独特的产品.服务或成果而进行的临时性工作. 项目管理是把事办成的方法论,万物皆可项目. 项目的特性 临时性:有明确的"起"和"止" ...