萌娘百科头像魔术字 IP 泄露

前言

,星海子在 Help:沙盒留下了一笔编辑我对此魔术字进行了一次测试(已经过申请后被监督),并在萌娘百科官方限水编辑讨论群发布了初步的调查报告。

漏洞详情

初步调查

{{#avatar:萌百娘}}{{#avatar:萌百娘|res=128}} --> width=128,图源 256px 支持小数

64 <= res < 128 --> width=res,图源 64px(https://storage.moegirl.org.cn/moegirl/avatars/30749/latest.png!/sq/64)

{{#avatar:萌百娘|res=}}(或<0) --> width=""(自动同图源大小),图源 256px


不能 subst,且如果 subst 不存在用户,会暴露你的 ip


—— 初步调查报告

{{#avatar:}}

{{subst:#avatar:}}
头像的 alt 属性会记录提交者的 IP 地址

好吧,似乎只有 subst(替换引用) 未注册用户的头像才会暴露,前者会只返回每位访问者的 IP,一般人但凡预览了都会察觉。

但,真的只是这样吗?

Web 缓存欺骗攻击

前情提要:萌百在此前上线了页面缓存。

是的,不出意外,其第一个,“只返回每位访问者的 IP”,变成了只返回第一位访问者的 IP。 而其缓存是对 URL 查询字符串敏感的。

也就是说,我可以发送一个包含此头像的页面链接,并在链接中增加例如 uuid=077860A0-4976-4999-9F08-DB0A651D3A56,然后发送给目标,在例如确定对方查看页面后,我再次以类似方式访问此页面,就能命中缓存,获取对方的 IP。

修复了吗?

本次由于是在工作日上班时间发现的,基本在半天内就修复了。

题外话

即使版本被监督了,缓存也不会因此失效。

相关链接

2024年7月26日的:萌娘百科评论区 IP 泄露