zoukankan      html  css  js  c++  java
  • 协议分析实战:某航某凰知音用户名及密码提取

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


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


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


    本文仅使用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

    长按进行关注。





  • 相关阅读:
    ThreadSafety with the AutoResetEvent, ManualResetEvent Class(Synchronization of .net)
    使用Python SMTP发送邮件
    flask项目中设置logo
    如何解决Bootstrap中分页不能居中的问题
    pip install mysql_python报错解决办法
    git上拉项目
    AttributeError: 'str' object has no attribute 'decode'
    pycharm设置SDK
    为git创建远程仓库
    开发过程中git的使用
  • 原文地址:https://www.cnblogs.com/protosec/p/11673359.html
Copyright © 2011-2022 走看看