← 返回首页

洗澡卡的秘密

发布时间: 2026-04-10 12:59(北京时间)

摘要: 作者回忆大学时公共浴室的热水系统,通过观察和实验发现系统基于M1卡卡号独立记录每个隔间的热水额度,而非联网鉴权。他利用机制漏洞如0点刷新和复制卡号,制作并出售'洗澡卡',引发误解后被学校处理。整体语调冷静、反思,带有技术探索和社会观察色彩。

标签: 技术实验, 系统漏洞, 社会观察, 反思, 冷静, 校园生活, 元分析

字数: 831

原文链接: /7402396589/QA8RyuJcB

想起大学时公共浴室每个隔间都有个读卡器,需要把校园卡放上去后才能使用热水。

我观察了下,每天每张卡有一定的热水额度(好像是20升),0点刷新。但我洗澡时间比较长,一张卡的热水似乎有些不够用,得想想办法。

我找到的第一个办法是利用0点刷新的机制。在0点前才去洗澡,只要插上后不拔下来,就可以用满20升热水。用完之后拔下来再插上去就已经刷新了,还可以再用20升。但这个办法的缺点就是得掐时间洗澡,万一错过0点,就得借已经洗过的室友的卡片(带两张卡去)。

就这样用了一小段时间,我有点受不了了,决定继续研究。我想象中的热水系统应该有个联网鉴权流程,读取校园卡信息,后台查询这个学号的同学今天还剩多少额度的热水。这样似乎很合理,所以我直接在考虑这个流程上有没有什么隐藏的漏洞。

不过是我想复杂了,我做了一些试验,发现获取热水并没有想象中复杂。

  1. 同一张校园卡在四个隔间的额度是独立的。
  2. 不一定需要校园卡,交通卡也可以拿到热水。

所以,可能没有联网,也没有鉴权。但对于同一个隔间的读卡器,用过的热水是会记录的,拔卡再插并不会重置,所以读卡器还是有读取到卡片的什么信息,并以此来记录已用额度。

我买了一些 Mifare S50 空白卡回来测试,果不其然每一张卡都有独立的额度。我还尝试用A卡先用掉一点热水,用读写卡器把A卡的id复制到B卡上,B卡的额度就和A卡一样了。

所以结论就是:每个隔间独立维护基于M1卡卡号的热水额度,0点重置。

这些买回来的M1白卡,我就命名为洗澡卡,并发微博记录了下。后来有人找我购买,我开价5元卖出了不少。有些同学只是为了洗澡多一些热水,有些想知道原理,我也一一告知了。不过这事儿越传越离谱,最后大概是我黑进学校洗澡的服务器,还私自制作破解卡。

虽然被学校请喝茶,但我实际上没有做任何“破解”系统、服务器的行为,所以就只是让我删掉微博了事。

不知道现在学校洗澡是不是还得刷校园卡,也不知道洗澡系统有没有进一步完善。