文章总结: 本文披露了一个开放图谱(og)缓存对象未授权刷新导致回溯性内容投毒漏洞。攻击者通过复用同一URL触发og对象刷新,篡改og:image等参数,可永久污染所有历史消息的卡片展示,影响范围跨用户和群组,危害极大。文章提供了详细测试流程和危害等级分析,并强调合法授权测试。
综合评分: 85
文章分类: 漏洞分析,web安全,渗透测试
开放图谱(OG)缓存对象未授权刷新与回溯性内容投毒漏洞
原创
游山玩水
游山玩水
山水SRC
2026年9月26日 11:43
河南
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
免责声明
本公众号分享的所有渗透测试技术文章仅面向合法授权的安全测试、学习交流与研究用途。读者必须确保自身行为符合《网络安全法》等相关法律法规,严禁将其用于任何未授权攻击等非法活动。因不当使用或传播相关内容所引发的任何法律责任与风险,由行为人自行承担,本公众号(或本人)概不负责
测试流程
测试前提
1. 产品有”贴 URL → 自动生成富媒体卡片”的功能
- 消息框 / 评论框 / 动态框里贴一个外链,自动拉出标题+描述+缩略图。
- 这是 OG(Open Graph)协议的标准用法,几乎每个带”发动态”功能的产品都有。
2. 卡片数据不是每次现抓,而是”按 URL 做 key 缓存/去重”
- 第一次有人贴
a.com/foo→ 爬一次,存og_obj_123。 - 第二次有人再贴
a.com/foo→ 不复爬,直接复用og_obj_123。 - 但 Yammer 这里又加了个动作:复用时会”顺手刷新”最新 OG 数据写回
og_obj_123——这才是坑。
3. 刷新操作的写权限没跟”谁最先创建这个对象”绑定
- 理论上:A 先贴的 URL,A 的 msg 绑在
og_obj_123上 → 只有 A(或平台)该决定这对象啥时候刷。 - Yammer 实际:B 贴同 URL → 也能触发刷新 → B 还能在请求里改
og:image参数 → 写回成功。
4. 对象是”一对多”渲染的
- 一个
og_obj_123被 N 条消息(不同用户、不同群、私/公)引用。 - 所以改一次,N 处污染——这是危害放大的最后一环。
测试流程
Step 1:A 账号先贴 URL,建立 OG 对象
- A 在群 G1(可以是私有群)发消息,贴
evil.example.com/ogtest.html。 - 看渲染出来的卡片:标题 + 原图,确认 OK。
- (可选)再去 B 账号的 G2 也贴一次同 URL,确认”复用”行为——有些产品不复爬只复用,有些复爬,有些复爬还允许带参覆盖,这一步要摸清产品行为。
Step 2:B 账号贴同 URL,Burp 拦截
-
B 在消息/评论框贴同一个 URL。
-
拦截到的请求里大概率会有:
-
一个
url=参数 -
一个
og_object_id=或类似 -
可能有
refresh=1、reparse=1、fetch_og=1这种触发重新抓取的开关 -
还可能直接把
og:image、og:title当参数传回来让你改(Yammer 就是这种)
Step 3:尝试篡改 OG 字段
重点试这几个参数(不同产品命名不一样,靠猜+历史报文观察):
og:image/thumbnail/pic_url→ 改成你控制的另一张图og:title/title→ 改标题og:description/desc→ 改描述
放行,看 B 这条消息的卡片是不是变成了新图/新标题。
Step 4:回看 A 的历史消息(关键验证)
- 切回 A 账号,刷新 G1 里那条原消息。
- 如果 A 的卡片也变成了你 Step 3 改的新图 → 🎯 洞成立,”回溯性污染”验证成功。
- 如果只有 B 的新消息变、A 的旧消息不变 → 那是”每次新建 OG 对象”,不算这个洞(但可能另有用途)。
危害等级与影响
| 维度 | 影响描述 |
| — | — |
| 回溯性内容投毒 | 灾难性。攻击者可通过修改共享 OG 对象,永久改变所有历史消息中的卡片展示。原发布者无法删除或恢复(除非平台清理缓存),导致“只可读不可删”的持续性污染。 |
| 一对多放大效应 | 极高。由于 OG 对象是“一对多”渲染,一次篡改可瞬间污染 N 条消息、跨用户、跨群组(包括私有群),影响范围呈指数级扩散。 |
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:山水SRC 游山玩水
游山玩水《开放图谱(OG)缓存对象未授权刷新与回溯性内容投毒漏洞》