<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>API安全 - 标签 - 御衡的笔记</title><link>https://www.leobenchoi.com/tags/api%E5%AE%89%E5%85%A8/</link><description>御衡的笔记</description><generator>Hugo 0.166.0 &amp; FixIt v0.4.5</generator><language>zh-CN</language><lastBuildDate>Mon, 06 Apr 2026 22:39:00 +0000</lastBuildDate><atom:link href="https://www.leobenchoi.com/tags/api%E5%AE%89%E5%85%A8/index.xml" rel="self" type="application/rss+xml"/><item><title>【juice-shop】★★★ API-only XSS：绕过前端直接调用 API 实施存储型 XSS</title><link>https://www.leobenchoi.com/posts/2026/juice-shop-api-only-xss/</link><pubDate>Mon, 06 Apr 2026 22:39:00 +0000</pubDate><guid>https://www.leobenchoi.com/posts/2026/juice-shop-api-only-xss/</guid><category domain="https://www.leobenchoi.com/categories/security/">安全</category><description>&lt;h1 class="heading-element" id="juice-shop-api-only-xss绕过前端直接调用-api-实施存储型-xss"&gt;&lt;span&gt;【juice-shop】★★★ API-only XSS：绕过前端直接调用 API 实施存储型 XSS&lt;/span&gt;&#10; &lt;a href="#juice-shop-api-only-xss%e7%bb%95%e8%bf%87%e5%89%8d%e7%ab%af%e7%9b%b4%e6%8e%a5%e8%b0%83%e7%94%a8-api-%e5%ae%9e%e6%96%bd%e5%ad%98%e5%82%a8%e5%9e%8b-xss" class="heading-mark"&gt;&#10; &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&lt;h2 class="heading-element" id="0x01-任务简报"&gt;&lt;span&gt;0x01 任务简报&lt;/span&gt;&#10; &lt;a href="#0x01-%e4%bb%bb%e5%8a%a1%e7%ae%80%e6%8a%a5" class="heading-mark"&gt;&#10; &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&lt;blockquote style="border-left: 5px solid #6f42c1; background-color: #f5f3ff; padding: 20px; margin: 1.5rem 0; color: #5521b5; line-height: 1.8; border-radius: 0 5px 5px 0;"&gt;&#13;&#10;&lt;div style="font-weight: bold; font-size: 1.1rem; margin-bottom: 10px; display: flex; align-items: center;"&gt;&#13;&#10;&lt;span style="margin-right: 8px;"&gt;💡&lt;/span&gt; 提示 (Hints)&#13;&#10;&lt;/div&gt;&#13;&#10;1. 需要直接调用服务器端 API，通过 API 尝试不同的 HTTP 动作以暴露不同实体。&lt;br&gt;&#13;&#10;2. 一个包含已知数据实体及其在 API 中支持的 HTTP 操作动词的矩阵可为你提供帮助。&lt;br&gt;&#13;&#10;3. 粗心的开发人员可能暴露了客户端根本不需要的 API 方法。&#13;&#10;&lt;/blockquote&gt;&#13;&#10;&lt;hr&gt;&#10;&lt;h2 class="heading-element" id="0x02-实战复现漏洞"&gt;&lt;span&gt;0x02 实战：复现漏洞&lt;/span&gt;&#10; &lt;a href="#0x02-%e5%ae%9e%e6%88%98%e5%a4%8d%e7%8e%b0%e6%bc%8f%e6%b4%9e" class="heading-mark"&gt;&#10; &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&lt;h3 class="heading-element" id="-第一步api-枚举"&gt;&lt;span&gt;🔍 第一步：API 枚举&lt;/span&gt;&#10; &lt;a href="#-%e7%ac%ac%e4%b8%80%e6%ad%a5api-%e6%9e%9a%e4%b8%be" class="heading-mark"&gt;&#10; &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&#10; &lt;/a&gt;&#10;&lt;/h3&gt;&lt;p&gt;这个挑战需要寻找前端没有暴露的 API 接口，使用 FindSomething 插件收集到以下接口：&lt;/p&gt;</description></item></channel></rss>