无需代码的 “入侵”
某天,朔夜正忙于编写一个网站的登录系统。敲击键盘的间隙,高中时的一段往事忽然掠过脑海。
那是平常的一天。放学后,绘理和朔夜收拾好书本,一如既往地并肩向校门走去。 因为绘理动作稍慢了些,当他们到达校门口时,出入闸机前已经排起了不短的队伍。
学校为了安全,安装了联网的人脸识别门禁系统。闸机上方悬挂着一块大屏幕,实时滚动显示着师生们的出入记录。
排队等待时,朔夜无聊地四处打量。目光扫过那块大屏幕的瞬间,他像是发现了什么,停下来仔细端详。
“朔夜,你看什么呢,这么入神?”
绘理注意到他的反常,疑惑地问道。
“在看那个屏幕。”
朔夜没有移开视线,只是随口应了一声。
“那个显示出入记录的屏幕?有什么好看的。”绘理嘟囔着,“要我说,学校也真是的,把门禁拍的照片全挂在大屏幕上‘公开处刑’,多尴尬啊。”
绘理并不理解朔夜为何看得如此仔细。
“不,我发现了一个很严重的安全漏洞。”
这句话瞬间勾起了绘理的好奇心。
“你看,这个出入记录页面其实只是运行在 Chrome 浏览器里的一个普通网页。”
朔夜指了指屏幕上方若隐若现的浏览器边框。
“那又怎样?难不成你还能直接黑进管理员账号?”
绘理顺着他指的方向看了看,转头问道。
“我没那本事。不过,你仔细看看 Chrome 的地址栏。”
绘理凑近了些,眯起眼睛端详着那行细小的字符。地址栏里的网址大约是这样的:
https://example.com/#/records?access_token=.....
“不就是个网址吗?这有什么问题?”
绘理还是没看出来。
“网址本身没问题,但参数有问题。你看,他们把 token 直接以明文形式放在了 URL 里。”朔夜解释道,“你很清楚 token 泄露意味着什么吧?”
“这有什么,”绘理反驳道,“连我这个搞电子的都知道 token 是有时效的。估计过一会儿它就失效了吧?”
作为主修计算机科学的学生,朔夜自然明白 token 的有效期原则。但他既然敢提出来,显然是掌握了其他线索。
“其实我观察很久了。昨天早上我来得早,刚好看到安保人员交班。他直接双击桌面上的快捷方式就进入了这个页面,完全没有登录过程。”朔夜一边说,一边掏出手机,“这说明这个 token 很可能是长效甚至永久的。刚才我对比了一下,和昨天的一模一样。”
话音刚落,他便飞快地拍下了屏幕的照片。
走出校门后,朔夜从照片里识别出那串地址,粘贴到手机浏览器中。果不其然,屏幕上直接跳出了他预料中的管理后台。
绘理:“不是吧……真的有开发者这么心大?长见识了。”
朔夜:“我也不是搞网安的,但我听过圈子里的一句话:‘与其费尽心思挖 CVE,不如等管理员主动把凭据递到你手里。’ 没想到今天还真遇上了。”
就这样,两个高中生仅凭一张照片,就轻而易举地“入侵”了这套价值数十万的门禁系统。
“我们要不给 IT 部发封邮件提醒下?虽然我估计说了也白搭。”
正义感爆棚的绘理提议。她口中的“白搭”并不是随口说说,毕竟学校的 IT 部门向来对学生的建议不理不睬。
事实证明,绘理的直觉非常准。如今距离他们毕业已经快两年了,而当年拍下的那个 token,直到今天依然有效。
本节完
后记
本节的写作灵感并不来源于网络和杜撰。