某省高考志愿填报系统的漏洞实战解说
编按:教育系统高考……,网上填志愿方便了广大考生,但是安全上的疏忽与漏洞也能增加很多不必要的麻烦,在此提醒教育工作者,安全第一。
某省今年高考志愿填报实行网上填报,在模拟填报演练时本说是全部实行在互联网填报的,但因为演练时突然访问量过大,导致网速N慢,甚至被正常的访问弄得拒绝服务。我狂汗!后来上面考虑到这个问题就只在两个市实行网上志愿填报,其他的由局域网填报后同意上报。在演练的时候我就不放心这个系统的安全性了,但当时没能找出什么漏洞。后来我听说我处的市是两个在互联网填报的市之一,最近在填报过程中还真让我发现了一点漏洞,再次狂汗!
先说说这个系统的安全措施吧,经我演练时的检测,这个站的系统和脚本都做得很不错,现在要找漏洞只能从其他方面入手了。这个系统在正式填报志愿前都要求填上准考证号,报名号,身份证号,密码和验证码才能登录(如图1),登录后必须改密码才能开始填报,改过密码后再次登录只需输入准考证号和密码,验证码就能登录了。如图2是改过密码登录后的页面。乍一看要填那么多资料好象已经很安全了,其实不然。
我们还是来看看他要求输入的东西吧,其实最主要的是密码一项(废话)。我们且不说大家改动后的密码很白痴的情况,我们先来看看他的原始密码是怎么获得的。原始密码是由一张考试院统一免费发放的志愿填报卡的卡号和密码组成的,加起来有十几位,要爆破不太可能。但我注意到,老师在发这张卡时是乱发的,并不是一一对应的。那么同一个密码是不是可以登录多个帐户呢?呵呵,我们试试不就知道咯。我在刚拿到卡后不久就登进去改了密码,正好我有一个同学的卡丢失了,正要到市招生办解决,我就叫他试着用我的卡登录,结果......居然成功了,汗~~~~~~~~~~~~~。这样一来,我们不就有机可乘了??
也许有人会说我们怎么知道别人的准考证号,报名号和身份证号,其实很简单,我们的报名号是按班级和学号依次排列的,所以只要知道了别人的班级和学号再根据自己的报名号就可以推出别人的报名号了,而准考证号又是根据报名号依次排列的,那么根据报名号就又可以推知别人的准考证号了。至于身份证吗,是由6位固定数字+出生年月日+4位数字(最后一位也可能是X)组成的。前面那6位我们是知道的,而出生年月日吗,我们完全可以叫对方写同学录套出来,最后4位我们就可以通过软件来批量测试了(我试过密码错误N次都是可以登录的),最麻烦的要数验证码了,目前对这个我还只能用手去输,但听说还有技术是可以识别验证码的,如果是真的,那就简单很多了。
想想,高考志愿填报是何等大事,如果真有人搞破坏那后过不就......当然,如果一开始就改了别人的密码别人只要带相关材料到市招生办就可以帮你改密码了,大不了麻烦点,那填了志愿后去改别人密码然后改掉他的志愿呢?他一定会在要求打印确认是大吃一惊,但这时要改志愿可不是那么简单的了,因为按规定经打印后的志愿是禁止修改的了。那么怎么在别人填了志愿后去改他的密码呢?要知道那时密码可是他本人改过的了啊!
呵呵,我们前面不是说过密码忘了可以带相关材料到市招生办改吗?市招生办是怎么改的呢?我记得演练是在志愿填报登录页面下方有一个管理连接,现在虽然不见了,但直接输入URL还是可以访问的哦(如图3)!那么我们怎么得到管理员的用户名和密码呢?呵呵,其实我们可以假装忘记密码去招生办就他改,这样我们就可以得到他用的用户名了(是看显示屏上,我可没那本事能记住他在键盘上打的是什么),下面就剩密码了。我来到了本市招生办的网站上逛了一下,发现系统和主页都没什么漏洞,还有一个是动网7.1的论坛。好象没办法了啊!别急,我试着访问了http://www.xxx.com/bbs/data/dvbbd7.mdb竟出现下载提示(如图4),狂晕!在dv_log中我找到了admin的密码,试着用这个密码和我偷看到的用户名登录,居然成功了!!现在我已经可以管理全市的考生档案了啊!汗!不敢乱动,免得被抓,赶快退出闪人了!