Marginalman 板


LINE

这次偶然间发现了能够无限注册 PTT 帐号的方法, 回报到 HITCON ZeroDay 平台,目前已修复并公开。 (https://zeroday.hitcon.org/vulnerability/ZD-2023-00133) 契机 ---- 其实最一开始是跟找漏洞无关的。 单纯是有一天突然在想,不知道有没有办法在不编辑文章的情况下, 提前知道准备发出去的文章代码,这样岂不是很酷吗 翻了一下 PTT 的程式码後可以发现,文章代码和档名之间有一套转换规则。 而档名由三个部份组成: 1. 种类(文章或文摘) 2. 发文时间 3. 某个随机的值 前两项都不难控制,所以剩下最後一项的随机值。 一看之後发现竟然是用 C 标准库的 random()。 那这样就蛮简单的了,只要能让他生出多一点随机数出来就能反推 seed, 因为 seed space 只有 2^32 这麽多, 这个数量级对现在的电脑来说可以直接暴力硬搜。 剩下的问题在要怎麽生出足够多的随机数。 第一个想法是连发好几篇文,不过这样有点突兀。 翻一翻程式码之後发现一个比较好的办法, 就是利用 PTT 的 ANSI 动画支援的随机跳页面功能。 只要让第一页的内容是只有「1」、第二页的内容只有「2」... 在开头加上随机跳页面,就马上可以知道这次 random() % (页数) 的值了。 生出足够多的值之後对每个 seed 都试试看符不符合就可以反推出 seed。 在这之後的随机数就都是可预测的。 在我的电脑上完整的试完 2^32 种可能的 seed 需要大约 40 分钟左右。 不过我没这个耐心,就顺便写一下 CUDA 来用显卡跑。 在我的 GTX 1080 上完整跑完需要大约一分钟,已经非常能接受了。 无限认证帐号 ------------ 能够提前知道文章代码当然很不错, 接着我就顺便看一下还有哪些地方用了 random(), 发现有个 makeregcode() 也用了 random()。 继续追下去发现是用来生成注册验证码的,但只有信箱注册会用到, 其他像是简讯注册、重设密码等等都是乖乖从 /dev/urandom 拿的。 应该是当初漏改到这个部份。 实际测试还真的让我验证成功, 所以只要用任何没被注册过的台大信箱都可以验证, 前面是乱码也没关系,就算 mail server 坏掉寄不出去也没差, 因为在我们进入验证页面的那一刻就知道验证码是什麽了。 回报 ---- 我在 3/16 号时回报给 HITCON ZeroDay 平台。规定是两个月後自动公开。 大约一个月後(有点慢)状态改成修复中, 再过一个月後,也就是 5/16 号凌晨时就自动公开了。 我当时觉得站方认为这是不值得修的小漏洞, 毕竟只是能一直注册而已,不是资料外泄或整个站被骇。 所以我就把 PoC 丢一丢,就当这件事结束了。 没想到同一天的晚上我收到平台寄来的信, 说是之前的通报有点问题, 现在他们重新联络到 PTT 站长,所以要把状态退回非公开。 我回到 GitHub 上看,竟然已经有两个 fork 了,也不知道他们怎麽发现的。 不过已经 fork 的我也管不了,反正不是我的问题, 把我自己的 repo 移除相关内容就仁至义尽了。 这次 PTT 的反应就非常快,隔天 (5/17) 我就收到通知说修好了请我复测, 所以当初两个月没人回大概就真的是联络上有点问题, 确定修好之後三天,也就是 5/21 的凌晨时重新变回公开。 完整的时间轴: 03/16: 回报至 HITCON ZeroDay 03/26: 平台审核完成(应该是指确定有漏洞) 04/24: 修补中(理论上应该要联络到 PTT 站方了) 05/16: 第一次公开 05/16: 寄信来说要改回非公开 05/17: 寄信来说修好了 05/21: 再度公开 结论 ---- 这是我第一次比较正式的回报漏洞, 虽然不是什麽大漏洞,不过我自己是觉得挺有趣的。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.16.175 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Marginalman/M.1684644050.A.0DE.html
1F:→ XROCK: 看不懂 大师 05/21 12:41
2F:→ kitune: 你很棒 05/21 12:41
3F:推 Mikotosama: 大师 05/21 12:41
4F:→ kitune: ...靠邀 该不会现在一堆APP跟PTT SATAR乱码 就是修这个吧 05/21 12:42
5F:→ kitune: 时间点好像对的上耶 05/21 12:42
6F:→ napacabbage: 大师 05/21 12:42
7F:推 JIWP: 大师 05/21 12:43
8F:推 TokiwaKurumi: 哇 05/21 12:43
9F:推 flyau: 大师 05/21 12:43
10F:→ pchooooome: 大师 05/21 12:44
11F:→ TokiwaKurumi: 你跟yoyodiy谁比较厉害 05/21 12:44
12F:推 keepgimo: 大师 05/21 12:45
13F:推 an94mod0: 阿 所以是为了修这个把手机版全部搞死? 05/21 12:49
14F:推 oin1104: 大师 05/21 12:50
15F:推 black80731: https://i.imgur.com/lx1hUsB.gif 05/21 12:50
16F:推 Excrement35: 大师 05/21 12:51
17F:→ DDFox: 大师 05/21 12:52
18F:推 ubcs: 大师 05/21 12:56
19F:推 KitsuNixya: 大师 05/21 12:58
20F:推 medama: 大师 05/21 12:59
21F:推 devilkool: 大师 05/21 13:00
22F:推 AllinPM: 大师 05/21 13:00
23F:推 jasonbass: 大师 05/21 13:00
24F:推 ken1990710: 大师 05/21 13:01
25F:推 loveSETSUNA: 大师 05/21 13:05
26F:推 ThisIsNotKFC: 猛 05/21 13:13
27F:→ NENEmywife: 大师 05/21 13:41
28F:→ Rushia: 你好优秀 05/21 14:31







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP