漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-066653
漏洞标题:吉林教育信息网严重SQL注入可查4年近百万高考成绩录取信息
相关厂商:www.jledu.gov.cn
漏洞作者: 老迷糊飞侠
提交时间:2014-06-29 20:11
修复时间:2014-08-13 20:12
公开时间:2014-08-13 20:12
漏洞类型:SQL注射漏洞
危害等级:高
自评Rank:15
漏洞状态:已交由第三方合作机构(CCERT教育网应急响应组)处理
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-06-29: 细节已通知厂商并且等待厂商处理中
2014-07-03: 厂商已经确认,细节仅向厂商公开
2014-07-13: 细节向核心白帽子及相关领域专家公开
2014-07-23: 细节向普通白帽子公开
2014-08-02: 细节向实习白帽子公开
2014-08-13: 细节向公众公开
简要描述:
12年该网站爆出漏洞后加了简单的过滤,但是还是有漏洞存在,可以查到11、12、13、14四年近百万高考考生成绩和录取信息,市面上的“报考专家”之类的软件,数据可能就是这么来的吧。。
详细说明:
网址如下:
如果直接输入单引号会提示“输入非法注入内容”,看来网站还是加了简单的过滤的
但是他们忽略了转义字符“\”
---------------------------↑↑(乌云会把单个反斜线转义成两个,以下所有反斜线都是单个的,自己去掉一下吧)
假设查询成绩的SQL语句是这样
如果在考号里面加转义就变成了这样:
这样ksh之后到xm之前一大坨就可以忽略,在“姓名”里面就可以任意构造SQL语句
别忘了在最后加注释#
最后实际执行的SQL语句是这样的
这样只需要考号不需要知道其对应姓名就可以查到成绩了。
构造以下exp:
成绩已经出来了
14、13、12、11年的都是一样的
接下来的问题是考号从哪里来?
随便看一个考号,12220822150199
可以这样分割 12|220822|15|0199
12是指2012年,13则对应2013年,其它同理
220822是身份证前六位,网上可以查得到
中间的15代表理科,11代表文科
最后面4位是从0001开始依次递增排下去的,例如某县有1800名考生,考号后四位就是0001到1800,遍历下就可以了
写个程序拿回成绩数据
有了成绩里面已经包含了考生号和姓名,直接提交就可以查到录取信息了
11、12、13、14连续四年近百万考生的数据都泄露了,市面上的“报考专家”之类的软件,数据可能就是这么来的吧。。。。
漏洞证明:
修复方案:
更加严格的过滤
版权声明:转载请注明来源 老迷糊飞侠@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:8
确认时间:2014-07-03 17:22
厂商回复:
已转cnCERT处理
最新状态:
暂无