上个月我去某个公立图书馆办了一张借书证,回来以后登陆图书馆的网站修改密码。在整个使用过程中,我发现这个图书馆存在不少漏洞。利用这些漏洞,我可以窃取不少人的借阅信息,甚至可以伪造别人的借书证然后恶意借书(也就是借书不还)。这些漏洞中的一些如果是单独存在的话并不能称为漏洞,但是因为多个“漏洞”同时存在,就让恶意用户有了利用这些漏洞的机会。下面我把这些漏洞一一列举出来。
窃取用户信息
登陆密码是用于登陆图书馆网站的,登陆图书馆网站以后可以看到自己的信息,以及自己的借阅记录,同时可以进行续接操作。大多数用户都没有修改默认密码的习惯,比如我认识的一个人,他的借书证办了超过两年了,但是密码一直没有更改。在我发现这个漏洞并告诉他后他才去把自己的密码改掉的。其实如果不知道登陆名的话,知道密码倒也不是什么大问题,但问题是,用户名就是借书证的证号,而证号是连续的。这样,我就可以根据我的借书证证号,向前和向后推出所有有用户的证号,接着使用默认密码去尝试登陆,这样就能得到没有修改密码的用户的信息。
用户信息,就包括用户借书证号、姓名、借阅记录,可能还有用户所在单位,手机号等信息。来看看得到这些信息我们可以做什么坏事。
知道使用默认密码的用户之后,就可以以这些用户的身份登陆到图书馆网站,接着,我可以修改用户的登陆密码,查看用户的借阅记录。修改密码最多也就算是恶作剧,因为用户毕竟可以去图书馆修复密码。不过查看借阅记录这个就有侵犯隐私之嫌了。假设我们想知道身边朋友、同学、同事的借阅记录,完全可以弄个脚本去一个一个借书证号尝试登陆,然后把同名人的信息抓回来,再人工分析一下所在单位和手机号等信息,就可以知道我们想找的人的借书证号了。接着,就可以偷窥这个人的借阅记录,窥探他的隐私了。
导致漏洞的原因
- 借书证号是连续的
- 所有人的密码都是默认的
如何堵漏
要堵上这个漏洞的方法不少,其中一个是不是用连续的借书证号,这个方法在下一个漏洞后面有说明。另外的方法是,强制要求用户更改密码,可以在用户首次登陆后要求用户修改密码,否则不能使用其他功能。然后要求用户在24小时内登陆,如果超过24小时没有进行首次登陆,就必须到图书馆去重置账户,然后在24小时内登陆。其实图书馆大厅里面有终端,图书馆完全可以要求在1小时内进行首次登陆的,这样安全性更高。
盗用用户信息
上面我们已经得到了用户信息,现在就来说说如何盗用用户信息去借书。这个图书馆使用的借书证上面用条形码印着卡号,进图书馆的时候自己把借书证上的条码扫描一下就能进入。借书的时候,把卡给工作人员扫描一下(期间甚至可以不用交道工作人员手上,可以自己拿在手上让工作人员用扫描器扫一下)。这和大多数图书馆都差不多(所以说大多数图书馆可能也存在这个漏洞)。整个过程我们只需要提供借书证号就能完成,根本不用验证身份。而前面说过,只需要推算一下就能得到所有用户的信息。不过为了稳妥起见,我们还是使用没有修改密码的用户的信息。首先选定一个用户,然后登陆到图书馆看看这个用户目前借出了多少本书,如果还能继续借书,那么就使用这个用户的证号。首先要根据这个用户的证号生成一个条形码,网上有很多提供这种服务的网站,只要输入证号就能生成相应的条码图片。把条码图片打印出来,小心地贴在一张借书证上面,尽量弄得看不出来。当然如果要求想更高一点,可以直接定做这种借书证卡片,这种卡片批量定制也是很便宜的,淘宝上一搜就有一大堆提供这种定制卡片的服务。伪造好一个借书证后,就可以想正常借书一样盗用别人的身份去借书了。
要注意的是,图书馆里面一般都有监控设备,如果想借书不还的话还要一些准备。如果借出的书的价值不大的话,完全可以自己去借书,因为价值不大即使报案公安一般也不会立案侦察,靠图书馆自己根据监控查出是谁盗借并非易事,消耗的资源可能比书的价值还大,所以猜测对价值不大的书图书馆不会去追查。如果是价值较大的书,完全自己先进图书馆踩点,然后在街头雇个什么人让他去把书弄出来,这样可以保证自己很难被追查到。
导致漏洞的原因
- 借书证号是连续的
- 进入图书馆和借书仅需要扫描借书证号条码
如何堵漏
如果图书馆使用射频识别的话就不存在这个漏洞了,毕竟现在射频识别对普通人来说还很难伪造,但毕竟是公立带有公益性质的图书馆,各方面尽量缩减开销是应该的,用条形码确实也是很省钱的方案。当然即使是用条形码也有办法堵住这个漏洞。可以使用一个保密的算法,为每一个证号计算几位校验码,加在证号后面,然后告诉用户保护好自己的证号不要被别人看到,这样就可以提高不少安全性了。
F-22's Trace
greensea 的个人主页
sky-city
极夜奁
小樱之町
如果是价值较大的书,完全自己先进图书馆踩点,然后在街头雇个什么人让他去把书弄出来,这样可以保证自己很难被追查到。
这个步骤很麻烦
不止是图书馆,以及选课系统都有这种漏洞。。。
ym黑客