漏洞概要 关注数(50) 关注此漏洞
缺陷编号: WooYun-2016-190761
漏洞标题: 铁路12306通信加解密破解
相关厂商: 12306
漏洞作者: chaoxilab
提交时间: 2016-03-30 16:51
公开时间: 2016-05-16 16:00
漏洞类型: 账户体系控制不严
危害等级: 高
自评Rank: 20
漏洞状态: 厂商已经确认
漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系
Tags标签: 无
漏洞详情
披露状态:
2016-03-30: 细节已通知厂商并且等待厂商处理中
2016-04-01: 厂商已经确认,细节仅向厂商公开
2016-04-11: 细节向核心白帽子及相关领域专家公开
2016-04-21: 细节向普通白帽子公开
2016-05-01: 细节向实习白帽子公开
2016-05-16: 细节向公众公开
简要描述:
详细说明:
信任所有证书极易导致中间人攻击,完全可以控制整个通信内容。业界公认高危漏洞。
漏洞证明:
一、 https未校验证书导致数据被捕获(中间人攻击风险)
客户端虽采用了https,但并未对服务端证书进行校验能够捕获通讯数据,可导致中间人攻击。
信任所有证书
可以正常截获通讯数据
二、通信数据解密
铁路12306通信加解密主要通过checkcode、decheckcode两个函数进行通信加解密,虽然采用加固方式,但是太过依赖于加固技术,从而造成通信接口过于暴露。
dex部分:
加解密函数代码
so部分:
这里以解密代码为例:
调用R3,这里就调用到了aes_decrypt1
在 aes_decrypt1函数中调用了CWAESCipher::WBACRAES128_DecryptCBC
在这个循环1中,调用CWAESCipher::WBACRAES_DecryptOneBlock进行解密,解密的顺序为逆序,第一次解密的key为:00 00 00 00 00 00 00 00 00 00 00 00 最后四字节为base64数据长度+1。
解密出来的数据有2个作用:1> 作为下次解密使用的key,2>通过第2个循环修复出真正的解密数据。
逆序进行数据解密
编写封包解析程序验证登录加密数据和返回数据的解密:
登录数据中parameters项中para中数据是加密的
通过编写程序测试,checkcode加密后的数据为para中的内容。
服务器返回数据中respData中的数据为加密内容,解密后的数据:
手机号、生日、身份证号码、姓名、邮箱、用户名等等信息暴露。
三、数据重放
登录数据信息
退出之后登录,仍然可以重放登录数据
解密登录返回数据内容信息:
重放某人的登录包,可拿到手机号、生日、身份证号码、姓名、邮箱、用户名等等信息
修复方案:
你们更专业!
版权声明:转载请注明来源 chaoxilab@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:8
确认时间:2016-04-01 15:58
厂商回复:
谢谢!
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值
漏洞评价(共0人评价):
登陆后才能进行评分
评论