Starbucks的脚本小子扫站日记(打不过一点)
参考资料
资产范围
www.starbucks.com
app.starbucks.com
www.starbucksreserve.com
openapi.starbucks.com
com.starbucks.mobilecard
www.starbucks.ca
secureui.starbucks.com
com.starbucks.mystarbucks
其他资产不在收录范围,不做尝试
框架指纹识别
[tech-detect:akamai] [http] [info] https://www.starbucks.com
[tech-detect:akamai] [http] [info] https://app.starbucks.com
[waf-detect:akamai] [http] [info] https://app.starbucks.com
[tech-detect:jsdelivr] [http] [info] https://www.starbucksreserve.com
[tech-detect:google-tag-manager] [http] [info] https://www.starbucksreserve.com
[tech-detect:webflow] [http] [info] https://www.starbucksreserve.com
[tech-detect:cloudflare] [http] [info] https://www.starbucksreserve.com
[tech-detect:akamai] [http] [info] https://www.starbucks.ca
[waf-detect:cloudflare] [http] [info] https://www.starbucksreserve.com
[netgear-prosafe-login] [http] [high] https://www.starbucksreserve.com/login.cgi
[netgear-prosafe-login] [http] [high] https://www.starbucksreserve.com/Forms/login1
[waf-detect-cloudflare:Microsoft-Azure-Application-Gateway-v2] [http] [info] https://www.starbucksreserve.com
[graylog-endpoints-exposure] [http] [info] https://www.starbucks.com/api/plugins/org.graylog.enterprise.integrations/office365/checkSubscriptions
[graylog-endpoints-exposure] [http] [info] https://www.starbucks.ca/api/plugins/org.graylog.enterprise.integrations/office365/checkSubscriptions
[graylog-endpoints-exposure] [http] [info] https://app.starbucks.com/api/plugins/org.graylog.enterprise.integrations/office365/checkSubscriptions
相关信息
Akamai是防火墙厂商,这波扫到防火墙了
netgear-prosafe
一个面向家庭办公室(SOHO)或小型企业的交换机/路由器产品线
Microsoft-Azure-Application-Gateway-v2
微软Azure云的应用网关第二版
模板漏扫
开放重定向
nuclei -u www.starbucks.com -u app.starbucks.com -u www.starbucksreserve.com -u openapi.starbucks.com -u com.starbucks.mobilecard -u www.starbucks.ca -u secureui.starbucks.com -u com.starbucks.mystarbucks -t F:\CodeDev\全自动漏洞挖掘\9.4WPOC\open_redirect\open_redirect.yaml --retries 2 -me ./starbucks-open-redirect -p socks://localhost:10808
Git目录泄露
nuclei -u www.starbucks.com -u app.starbucks.com -u www.starbucksreserve.com -u openapi.starbucks.com -u com.starbucks.mobilecard -u www.starbucks.ca -u secureui.starbucks.com -u com.starbucks.mystarbucks -t F:\CodeDev\全自动漏洞挖掘\9.4WPOC\exposed\git-exposure.yaml -me starbucks-git-exposure -p http://localhost:10809
CORS跨源错误配置
nuclei -u www.starbucks.com -u app.starbucks.com -u www.starbucksreserve.com -u openapi.starbucks.com -u com.starbucks.mobilecard -u www.starbucks.ca -u secureui.starbucks.com -u com.starbucks.mystarbucks -t F:\CodeDev\全自动漏洞挖掘\9.4WPOC\other\cors.yaml -me starbucks-cors -p http://localhost:10809
nuclei蜜汁找不到POC
凭据泄露
nuclei -u www.starbucks.com -u app.starbucks.com -u www.starbucksreserve.com -u openapi.starbucks.com -u com.starbucks.mobilecard -u www.starbucks.ca -u secureui.starbucks.com -u com.starbucks.mystarbucks -t F:\CodeDev\全自动漏洞挖掘\9.4WPOC\auth\credentials-disclosure.yaml -me starbucks-cred-exposure -p http://localhost:10809
SSRF与盲SSRF
nuclei -u www.starbucks.com -u app.starbucks.com -u www.starbucksreserve.com -u openapi.starbucks.com -u com.starbucks.mobilecard -u www.starbucks.ca -u secureui.starbucks.com -u com.starbucks.mystarbucks -t F:\CodeDev\AutoPene\nuclei-templates\dast\vulnerabilities\ssrf\blind-ssrf.yaml -me starbucks-blind-ssrf -p http://localhost:10809
nuclei -u www.starbucks.com -u app.starbucks.com -u www.starbucksreserve.com -u openapi.starbucks.com -u com.starbucks.mobilecard -u www.starbucks.ca -u secureui.starbucks.com -u com.starbucks.mystarbucks -t F:\CodeDev\全自动漏洞挖掘\9.4WPOC\ssrf\xfh-ssrf.yaml -me starbucks-xfh-ssrf -p http://localhost:10809
CRLF注入
nuclei -u www.starbucks.com -u app.starbucks.com -u www.starbucksreserve.com -u openapi.starbucks.com -u com.starbucks.mobilecard -u www.starbucks.ca -u secureui.starbucks.com -u com.starbucks.mystarbucks -t F:\CodeDev\全自动漏洞挖掘\9.4WPOC\crlf_injection\crlf.yaml -me starbucks-blind-ssrf -p http://localhost:10809
依赖Webparalyzer识别框架进行扫描
nuclei -as -u www.starbucks.com -u app.starbucks.com -u www.starbucksreserve.com -u openapi.starbucks.com -u com.starbucks.mobilecard -u www.starbucks.ca -u secureui.starbucks.com -u com.starbucks.mystarbucks -t F:\CodeDev\全自动漏洞挖掘\9.4WPOC -me starbucks-as -p http://localhost:10809
深挖站点
Azure第二代网关(你说得对,但Nuclei拿XSS触发WAF)
[waf-detect-cloudflare:Microsoft-Azure-Application-Gateway-v2] [http] [info] https://www.starbucksreserve.com
草稿
好的,这份关于`www.starbucksreserve.com`的扫描报告,信息量极其巨大!
**它完全推翻了我们之前基于第一个模板(`waf-detect-cloudflare`)得出的“它是Azure WAF”的初步结论。** 您的这次深入探测,得到了一个更准确、更底层的答案。
**最终诊断:这个站点根本不是由Azure WAF保护的,而是由一个配置极其严格的、顶级的Cloudflare WAF保护。它与Webflow的深度集成,解释了我们看到的所有现象。**
---
### **证据链分析:我们是如何被“误导”,又是如何找到真相的**
1. **最初的线索 (被误导)**:
* `[waf-detect-cloudflare:Microsoft-Azure-Application-Gateway-v2]`
* **为什么会这样?**: Nuclei的这个模板可能是通过一些间接的指纹(比如特定的IP段、响应头组合)做出的初步判断。然而,现代云架构非常复杂,Cloudflare经常作为**第一层代理**,后面再套一层Azure(或其他云服务商)的负载均衡器。这个模板可能捕获到了下游Azure的某些特征,但它**没有**触发Cloudflare更高级的WAF规则。
2. **您这次的“主动攻击”探测 (真相大白)**:
* **您的操作**: 您不再是进行被动的指纹识别,而是发送了一个**包含了经典XSS攻击Payload (`<script>alert(1)</script>`)** 的`POST`请求。
* **这个操作的意义**: 这就像你不再是在门口观察,而是直接尝试“撬锁”。这个“撬锁”的行为,**直接触发了Cloudflare WAF最高优先级的安全警报**。
3. **响应包里的“自白书”**:
* **`HTTP/1.1 403 Forbidden`**: 明确的拒绝。
* **`Server: openresty`**: 我们之前已经知道这是Cloudflare的技术栈。
* **`<title>Attention Required! | Cloudflare</title>`**: **这是Cloudflare WAF拦截页面的标准标题。** 看到这个,就可以100%确定,拦截你的是Cloudflare,而不是Azure。
* **`<h1>Sorry, you have been blocked</h1>`**: 明确的拦截信息。
* **`You are unable to access cdn.webflow.com`**: **再次确认了Webflow的角色!** 这说明Cloudflare正在为`cdn.webflow.com`(Webflow的CDN网络)提供安全防护,而`www.starbucksreserve.com`正是托管在这个网络上的一个站点。
* **`Cloudflare Ray ID: 9661cd9b0dc12626`**: Cloudflare为这次拦截事件生成的唯一ID。
* **`Performance & security by Cloudflare`**: 页面底部的“版权声明”,无可辩驳。
---
### **我们现在知道了什么?—— 一套现代化的SaaS建站与防护体系**
1. **建站平台**: 网站是使用**Webflow**构建的。
2. **CDN与WAF**: 整个网站由**Cloudflare**提供全面的CDN加速和WAF安全防护。
3. **防护策略**: Cloudflare的WAF配置得**非常严格**。它不仅拦截了你这个最基础的XSS Payload,而且从我们之前的分析来看,它还部署了基于**JA3/TLS指纹**的、用于识别和拦截自动化工具(如Nuclei, Python `requests`)的先进策略。
4. **与Akamai的对比**:
* 主站(`www.starbucks.com`)使用的是**Akamai**。
* 子品牌站(`www.starbucksreserve.com`)使用的是**Cloudflare + Webflow**。
* 这是一种常见的大企业策略:核心业务使用最顶级的、定制化能力强的解决方案(Akamai),而营销或子品牌网站则使用更现代、更敏捷、成本更低的SaaS解决方案(Webflow + Cloudflare)。
---
### **这对您的渗透测试意味着什么?**
1. **攻击难度极高**: 您现在面对的是**Cloudflare顶级的WAF防护**。绕过它的难度,与绕过Akamai不相上下,甚至在某些方面(如反机器人和TLS指纹识别)更为先进。
2. **之前的403 Bypass技巧依然适用**: 我们之前讨论的所有绕过技巧(路径混淆、HTTP头修改等),对Cloudflare WAF同样适用,只是成功率可能会更低。您需要尝试更多、更冷门的变异Payload。
3. **主攻业务逻辑和配置错误**:
* WAF的核心是防范**技术性注入**。您应该将更多精力放在寻找**业务逻辑漏洞**上,例如:
* 网站上是否有任何表单或交互功能?(捐赠、注册、联系我们)
* 在这些功能的流程中,是否存在**越权(IDOR)**、密码重置缺陷、价格篡改等WAF无法理解的漏洞?
4. **寻找源站IP依然是“圣杯”**:
* 如果能找到托管在Webflow上的这个站点的真实源站IP(虽然很难,因为Webflow本身就是PaaS平台),你就能绕开Cloudflare的所有防护。但这对于SaaS平台来说,几乎是不可能的。
**总结:**
您通过这次深入的探测,成功地揭开了目标的真实面纱。您面对的不是一个配置错误的Azure网关,而是一个由**Cloudflare严密保护的、托管在Webflow上的现代化网站**。
您的下一个挑战,将是研究和实践针对**Cloudflare WAF的Bypass技术**。这是一个非常有价值的学习方向。请将重点放在**业务逻辑漏洞**上,因为这通常是绕过顶级WAF的最佳途径。
Graylog日志管理中心 (该如何绕过JA3指纹呢)
[graylog-endpoints-exposure] [http] [info] https://www.starbucks.com/api/plugins/org.graylog.enterprise.integrations/office365/checkSubscriptions
[graylog-endpoints-exposure] [http] [info] https://www.starbucks.ca/api/plugins/org.graylog.enterprise.integrations/office365/checkSubscriptions
[graylog-endpoints-exposure] [http] [info] https://app.starbucks.com/api/plugins/org.graylog.enterprise.integrations/office365/checkSubscriptions
Nuclei访问得到403,cURL访问得到API名称(访问什么API,就得到哪个API的路径api/plugins/org.graylog.enterprise.integrations/office365/checkSubscriptions
),浏览器访问得到404
扫一下其他可能的API
nuclei -u https://www.starbucks.ca -t F:\CodeDev\全自动漏洞挖掘\9.4WPOC\api\graylog-api-exposure.yaml -me starbucks-graylog -p http://localhost:10809
模板打不开,那只能自己拿出来
谢谢,孩子很喜欢
可能是请求头设置的问题

这背后的核心技术是JA3/JA3S指纹。
- JA3: 在TLS握手(建立HTTPS连接)的第一个包(Client Hello)中,客户端会告诉服务器它支持哪些加密套件、扩展、椭圆曲线等,以及它们的排列顺序。将这些信息组合起来,算一个MD5哈希,就得到了这个客户端独一无二的JA3D指纹。
- JA3S: 服务器根据客户端的Client Hello包,选择一套加密参数,并在其Server Hello包中返回。对这些返回参数进行哈希,就得到了JA3S指纹。
JA3指纹技术
JA3/JA3S 指纹技术是一种对网络流量进行指纹识别的方法,通过分析传输层安全性协议(TLS)的握手信息,为客户端和服务器之间的加密通信创建独特的“指纹”。这项技术由 Salesforce 的三位研究员 John Althouse、Jeff Atkinson 和 Josh Atkins 开发,并因此得名 JA3。
JA3:客户端指纹
JA3 主要关注于识别发起 TLS 连接的客户端应用程序。由于加密流量的内容被隐藏,JA3 通过分析 TLS 握手阶段的元数据来生成指纹。这些元数据在加密建立之前是以明文形式传输的。
JA3 的工作原理:
- 数据收集:JA3 从客户端发送的“Client Hello”消息中提取以下五个字段的十进制值:
- TLS/SSL 版本 (SSL Version)
- 支持的加密套件 (Accepted Ciphers)
- 扩展列表 (List of Extensions)
- 支持的椭圆曲线 (Elliptic Curves)
- 椭圆曲线格式 (Elliptic Curve Formats)
- 字符串拼接:将这些值按照特定顺序用逗号和连字符连接成一个字符串。
- 生成指纹:对这个拼接后的字符串进行 MD5 哈希运算,生成一个 32 位的哈希值,即为 JA3 指纹。
由于不同的客户端(如浏览器、恶意软件、自动化工具等)在实现 TLS 协议时,其支持的加密套件、扩展等的种类和顺序通常是固定的,因此它们的 JA3 指纹也会是独特的。
JA3S:服务器端指纹
为了进一步增强识别能力,Salesforce 推出了 JA3S,即服务器端的 JA3。 JA3S 关注的是服务器在 TLS 握手阶段对客户端请求的响应。
JA3S 的工作原理:
- 数据收集:JA3S 从服务器发送的“Server Hello”消息中提取以下三个字段的十进制值:
- TLS/SSL 版本 (SSL Version)
- 选择的加密套件 (Accepted Cipher)
- 扩展列表 (List of Extensions)
- 字符串拼接与哈希:与 JA3 类似,将这些值拼接成字符串,然后进行 MD5 哈希,生成 JA3S 指纹。
值得注意的是,服务器的响应会根据收到的“Client Hello”消息而变化。 因此,同一个服务器面对不同的客户端时,其 JA3S 指纹可能会不同。
JA3/JA3S 的组合应用
将 JA3 和 JA3S 结合使用,可以为客户端和服务器之间的整个加密协商过程创建一个更加独特的指纹。 即使恶意软件的命令与控制(C2)服务器的 IP 地址或域名发生改变,只要客户端和服务器应用程序本身不变,它们的 JA3/JA3S 指纹组合也通常会保持一致。
主要应用场景:
- 恶意活动检测:安全分析师可以利用 JA3/JA3S 指纹来检测和分类表现出可疑行为的加密连接。 许多恶意软件由于其独特的 TLS 实现,会产生独特的 JA3 指纹。
- 应用程序识别:JA3 有助于识别加密连接中涉及的具体应用程序和客户端,这对于网络监控和策略执行至关重要。
- 威胁情报:通过收集和分析 JA3 指纹,组织可以建立一个威胁情报库,用于识别已知的恶意活动。
- 僵尸网络检测:JA3 指纹可以有效地识别使用特定 TLS 配置的僵尸网络和自动化工具。
局限性与挑战
尽管 JA3/JA3S 技术非常有用,但它也存在一些局限性:
- 可被伪造:经验丰富的攻击者可以模仿已知良性应用程序(如常见浏览器)的 JA3 指纹,以逃避检测。
- 并非绝对唯一:不同的客户端应用程序可能会共享相同的 JA3 指纹,这可能导致误报。
- TLS 扩展随机化:一些现代浏览器(如 Chrome)已经开始随机化 TLS 扩展的顺序,这会导致每次连接的 JA3 指纹都发生变化,从而降低了该技术的有效性。
- 对加密流量的依赖:如果流量被进一步加密或通过隧道传输,可能会隐藏 TLS 握手的细节,使得 JA3/JA3S 无法正常工作。
总而言之,JA3/JA3S 是一种强大的工具,它通过对 TLS 握手过程进行指纹识别,为安全专业人员提供了一种在不解密流量的情况下洞察加密通信的方法。尽管存在局限性,但它仍然是网络安全领域中用于威胁检测和流量分析的重要技术之一。
邦er硬
nuclei -u https://www.starbucks.ca -t F:\CodeDev\AutoPene\nuclei-templates\http\technologies\graylog -me starbucks-graylog-api -p http://localhost:10809 -tlsi
头铁,接着扫……蜜汁加载不出来模板
教程上说可以模仿谷歌浏览器的指纹,但问题是我的谷歌也上不去……我连指纹模仿都没得做……
netgear交换机管理 (可能是误报)
[netgear-prosafe-login] [http] [high] https://www.starbucksreserve.com/login.cgi
[netgear-prosafe-login] [http] [high] https://www.starbucksreserve.com/Forms/login1
Nuclei显示是405 请求方法不对,使用yakit验证时变成了301
必须使用curl来访问
nuclei -u https://www.starbucksreserve.com -t E:\CTF\渗透\集成工具\ONE-FOX集成工具箱_V8公开版_by狐狸\gui_other\auxtools\plugins\exploit\NETGEAR -me starbucks-netgear -p http://localhost:10809
没有结果
尝试获取固件版本号
nuclei -u https://www.starbucksreserve.com/ -t F:\CodeDev\AutoPene\nuclei-templates\http\exposed-panels\netgear-version-detect.yaml -me starbucks-netgear -p http://localhost:10809
无果
检查Nuclei得到的响应,注意到以下两个响应头:
HTTP/1.1 405 Method Not Allowed
Cf-Cache-Status: DYNAMIC
Cf-Ray: 9661c8eca9ed6885-NRT
这两个响应头是Cloudflare的标志性特征。Cf-Ray是Cloudflare为每一次请求生成的唯一追踪ID。
Nuclei的请求首先是被Cloudflare的边缘节点接收并处理的。返回405这个决策,很可能是Cloudflare直接做出的,请求甚至可能根本没有到达真正的源站服务器。
而HTTP页面响应:
<html>
<head><title>405 Not Allowed</title></head>
<body>
<center><h1>405 Not Allowed</h1></center>
<hr><center>openresty</center>
</body>
</html>
这里的OpenResty是一个基于Nginx的高性能Web平台。Cloudflare的底层技术栈大量使用了OpenResty。因此,响应Nuclei扫描的,是Cloudflare的基础设施,而不是一台运行着古老CGI程序的NETGEAR路由器。
接下来是另一个响应头:
HTTP/1.1 405 Method Not Allowed
Set-Cookie: _cfuvid=aG9Ypf3nEgQuxxqLXAx6x6qObCUbsPe1p.mDjjfkAT0-1753678532837-0.0.1.1-604800000; path=/; domain=.cdn.webflow.com; HttpOnly; Secure; SameSite=None
_cfuvid
:Cloudflare用来防止Bot滥用的Cookie之一。- webflow.com: Webflow是一个非常流行的、无需代码即可构建专业网站的SaaS建站平台。
总结就是www.starbucksreserve.com
这个网站,很可能完全是使用Webflow这个建站平台构建和托管的。它是一个现代化的、托管在云端的静态或半动态网站,而不是运行在NETGEAR路由器上。
那么login.cgi
是哪来的呢?星巴克臻选的某个非常古老的版本网站可能确实是用NETGEAR设备托管的。后来他们决定用现代化的Webflow来重建网站,但在迁移过程中,一些旧的URL路径被错误地保留了下来。
- Cloudflare/Webflow如何处理这个“幽灵路径”:
- 当Nuclei的请求
POST /login.cgi
到达Cloudflare/Webflow
的服务器时,服务器在其路由规则中查找这个路径。 - 它发现,
/login.cgi
不是一个Webflow
系统能理解的、合法的路径,也没有任何后端逻辑与它对应。 - 因此,作为默认的安全策略,它直接拒绝了这个无法处理的请求,并返回了一个通用的
405 Method Not Allowed
错误。
因此,这不是一个真实的、可被攻击的NETGEAR登录页面,而是一个由现代建站平台(Webflow)遗留下来的、没有任何实际功能的“URL遗骸”。 Nuclei的模板之所以会报警,是因为它仅仅是根据URL的路径特征 (/login.cgi) 进行了匹配,但它无法判断这个路径背后是否真的有一个脆弱的NETGEAR设备。
- 当Nuclei的请求