邪恶八进制信息安全团队技术讨论组's Archiver

光芒果 2005-12-8 21:59

[原创]某省高考志愿填报系统的漏洞

文章作者:光芒果[cnnsafe.com]
信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])

[b]文章已经在《黑客手册》发表 经同意放出 转载请注明[/b]

编按:教育系统高考……,网上填志愿方便了广大考生,但是安全上的疏忽与漏洞也能增加很多不必要的麻烦,在此提醒教育工作者,安全第一。

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

styxfox 2005-12-9 10:03

验证码识别应该只能识别那些很容易看清楚的图片吧
如果加了花纹之类的或者干脆就是汉字加花纹 我觉得软件应该不能识别
不看不知道 一看吓一跳
不过改别人志愿属于损人不利己 我想没人去干吧 除非有仇

fhod 2005-12-9 14:47

看了半天
理论性的多...有实例更好.
作者没发实例也是考虑到安全问题了把.

mtryer 2005-12-14 12:56

在db_log里面找密码比爆破是高明多了。

juey 2005-12-15 17:55

一般来说,这样的问题好象很少出现,两者的的关联并不是很大,但是口令好象。。
是不是管理员给自己留下的后路吧

yizhigu 2005-12-16 07:49

看了一下,其实文章并没有很高深的技术却能解决问题。这就是所谓社会工程学吧,靠一些信息来猜测。有时候结合默认数据库也是不错的方法。至少看来这种验证方式和这样的管理疏忽是很少见的。

netsnow 2005-12-16 11:46

[quote][b]下面是引用juey于2005-12-15 17:55发表的:[/b]
一般来说,这样的问题好象很少出现,两者的的关联并不是很大,但是口令好象。。
是不是管理员给自己留下的后路吧[/quote]
我觉得不太可能.如果是这样的话他也应该想到被入侵的可能了!
我想管理员不会傻到这样吧?

juey 2005-12-17 18:45

那怎么解释这两者的关系呢?
我比较郁闷,把两个根本不相关联的东西连系在一起
也许是作者的运气好吧

lovewaz 2005-12-19 19:05

如果人们拿到原始密码就把密码给修改的话,这个安全隐患就小很多了
个人的安全意识很重要

光芒果 2006-6-24 14:03

今年更严重,准考证号,身份证号和报名号我全拿到了,就差初始密码了,随便搞张身份识别卡就可以了.

free2ndfree 2006-6-24 19:55

完全是运气,默认数据库没改名! [s:70]

fable 2006-6-25 20:16

呵呵
看起来更象是社会过工程学

zs158 2006-6-25 23:43

在db_log里我怎么没找到啊只有ip帐号时间什么的啊

hushui 2006-6-26 06:22

运气占了一些还有就是社会工程学。

页: [1]
© 1999-2008 EvilOctal Security Team