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

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

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

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

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

目标功能网页如下:

01

登录

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

点击登录,产生了两个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体和对应的响应体如下:

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

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

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

请继续围观。

02

退出

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

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

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

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

但是!但是!但是!

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

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

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

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

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

03

结束

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

欢迎关注。

长按进行关注。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180201G068GI00?refer=cp_1026

扫码关注云+社区