“对某航某凰知音网页版的登录功能进行体检,共同学习,提高分析技能。”
国内各公司的网络安全状况令人担忧,例如快递、航空公司等,由于偶然的原因,用到了某航某凰知音,又由于偶然的原因,对其功能进行了抓包分析,竟然发现了某航某凰知音登录功能的诡异之处,希望看到本文的朋友能够稍稍注意,别泄漏了自己的账号和密码,里面可是有积分的。
对从事协议分析还原的朋友,本文提供一个思路,在目标功能看似无法突破的情况下,多关注功能的周边,会有不少收获。
本文仅使用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
—
结束
某航凤凰知音的网站设计技能需要提高,至少把记住密码这脑残功能改掉啊。
欢迎关注。
长按进行关注。
领取专属 10元无门槛券
私享最新 技术干货