协议分析实战:某航某凰知音用户名及密码提取

 对某航某凰知音网页版的登录功能进行体检,共同学习,提高分析技能。


国内各公司的网络安全状况令人担忧,例如快递、航空公司等,由于偶然的原因,用到了某航某凰知音,又由于偶然的原因,对其功能进行了抓包分析,竟然发现了某航某凰知音登录功能的诡异之处,希望看到本文的朋友能够稍稍注意,别泄漏了自己的账号和密码,里面可是有积分的


对从事协议分析还原的朋友,本文提供一个思路,在目标功能看似无法突破的情况下,多关注功能的周边,会有不少收获。


本文仅使用Fiddler分析了HTTP流程。


分析目标网站地址为:http://ffp.airchina.com.cn/

目标功能网页如下:

640?wx_fmt=png


01

登录


登录页面输入账号密码,验证,然后登录,注意图中框内的“记住密码”,打上勾:

640?wx_fmt=png

点击登录,产生了两个HTTP POST请求

第一个POST请求为:

POST http://ffp.airchina.com.cn/app/security/rest/getEncryptKey

POST体长度为0。

响应体为类似如下串:

{"sKeyId":"6bf9e24a-6c70-4499-9182-c1f55be2ef14","publickKey":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCEFX3JiLqBRSSIOBZcrJe9UDsGKd/07lUKhnVREzDwObc9PiMRU6seVbPFFyGCMOA3I6Shy7GUrErBdJAih81WSNY+r6ptQqsyOFTCTj9wraASmRTHSViDzBDAYQoG5ylzKh6cTvJfTLCdi9bskGUAYTCDdshR8l/o6/GwE59DgwIDAQAB"}


看情况是这个POST是请求加密密钥,并且为RSA加密,根据多次登录分析,publickKey串各不相同,但强度为1024。


第二个POST请求为:

POST http://ffp.airchina.com.cn/app/login/member/submit?chloroToken=b179d0b6-26ca-4c17-8e09-c3739dbd65f8

POST体和对应的响应体如下:

640?wx_fmt=png

可以看出,登录用户名为明文未加密,登录密码被使用前一个POST请求到的RSA公钥加密了。


看样子,密码很安全,RSA1024不好破,每次生成一次RSA密钥对服务器好辛苦,苦劳很大。


如果只到这里,大家一定很失望,没有明文的密码呀!别急,凡是多做一点,一定会有想不到的惊喜。


请继续围观。


02


退出


我们继续点退出按钮,退出账号。再进入登录页面,此时会有一个GET请求:

GET http://ffp.airchina.com.cn/app/login/member 


请记住上一次登录时“记住密码”被打上了勾,这是神奇的小勾勾。


理所当然,进入登录页面后,用户名和密码都被填充好了。


但是!但是!但是!


你知道这个记住密码是怎么实现的吗?!!让人目瞪口呆,呆若木鸡!前面辛辛苦苦对密码RSA加密,都白干了。


直接看这个GET得到的响应体内的内容:

640?wx_fmt=png


这个被红色覆盖的,是我的登录账号和密码,明文的,没有半点的加密。


这个记住密码功能敢情是这样这样设计的啊,浏览器可以自己本地记住密码的,你们不知道吗?


看到某航凤凰知音的这个功能实现,直接瘫倒在地,你用cookie与服务器交互来记住密码,且明文返回密码,这怎么可以!


03


结束


某航凤凰知音的网站设计技能需要提高,至少把记住密码这脑残功能改掉啊。


欢迎关注。

640?wx_fmt=jpeg

长按进行关注。





原文地址:https://www.cnblogs.com/protosec/p/11673359.html