51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4348|回复: 5
打印 上一主题 下一主题

【转】APP账号密码传输安全分析

[复制链接]
  • TA的每日心情
    无聊
    前天 09:05
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2016-10-12 11:26:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      最近在搞公司的安卓APP测试(ThinkDrive 企邮云网盘)测试,安卓app测试时使用代理抓包,发现所此app使用HTTP传输账号密码,且密码只是普通MD5加密,存在安全隐患,无法防止sniffer攻击、中间人攻击(因此这次安全问题,加强对这两安全术语的了解)
    问题1:账号密码采用http传输,账号与密码(MD5值)均可以捕获;
    问题2:密码虽采用MD5加密,简单密码可以在线解密;

    问题3:密码不解密也一样可以登录,通过A账号在app登录,再用sniffer得到的B 帐号与密码(MD5值),使用Fiddler修改A账号的请求完成B账号在APP登录


         公司邮箱各版本其实使用的也是明文传输,最近WEB虽采用了HTTPS传输,但仍是传输的明文,可以抓包查看(HTTPS也可通过Fiddler解析成明文),基于此原因,于是对主流邮箱登录进行抓包分析,本文主要分析QQ是如何把账号密码从客户端传到服务端,学习借鉴相关经验。

    ===========分析结果(Findyou)===============
    【QQ触屏版】
    测试帐号:2198400585
    用户密码:123qwe
    加密方法:RSA非对称加密
    传输协议:HTTPS

    【WEB版】
    测试帐号:2198400585
    用户密码:123qwe
    加密方法:MD5(hexchar2bin(MD5(密码))+QQ号16进制)+验证码)

    传输协议:HTTPS
    分析结论:使随机验证码混合MD5加密以保证每次登录的值不一样
    ===========分析结果(Findyou)===============



    • 【QQ触屏版分析】






    操作步骤:1.使用Chrome修改浏览器User Agent为iphone
                  2.打开Fiddler准备抓包
                  3.访问mail.qq.com,QQ会自动适配到触屏版
                  4.查看http://w.mail.qq.com/cgi-bin/loginpage?f=xhtml源码
    得到关键代码如下:
    1. loginForm.onsubmit = function(){
    2.         var pwd = document.getElementById("pwd");
    3.         var p = document.getElementById("p");
    4.         var tsValue = document.getElementById("ts").value;
    5.         var PublicKey = "CF87D7B4C864F4842F1D337491A48FFF54B73A17300E8E42FA365420393AC0346AE55D8AFAD975DFA175FAF0106CBA81AF1DDE4ACEC284DAC6ED9A0D8FEB1CC070733C58213EFFED46529C54CEA06D774E3CC7E073346AEBD6C66FC973F299EB74738E400B22B1E7CDC54E71AED059D228DFEB5B29C530FF341502AE56DDCFE9";
    6.             var RSA = new RSAKey();
    7.             RSA.setPublic(PublicKey, "10001");
    8.         var Res = RSA.encrypt(pwd.value+ '\n' + tsValue + '\n');
    9.         if (Res)
    10.         {
    11.             p.value = hex2b64(Res);
    12.             pwd.value = "";
    13.         }
    14.         return true;
    15.     }
    复制代码
    如此可以看使用加密方法: RSA公钥加密算法

    Fiddler抓包如下:(P为密码加密后的值)







    • 【WEB版分析】



    注:网上查阅众多相关资料(网上有许多介绍QQ登录相关的内容),总结实践测试截图抓包如下

    Step1:  打开mail.qq.com,向服务器 获取验证码
    捕获请求:
    https://ssl.ptlogin2.qq.com/check?uin=2198400585@qq.com&appid=522005705&ptlang=2052&js_type=2&js_ver=10009&r=0.8771616001613438

    返回数据有两种情况:
    1). ptui_checkVC('1','aabf7b95f41689c5872740515288dcb5b1911c3de95f2092','\x00\x00\x00\x00\x83\x08\xee\x49');
    2). ptui_checkVC('0','!BQI','\x00\x00\x00\x00\x83\x08\xee\x49');
    其中 ‘1’代表需要验证码,‘0’代表不需要验证码 ,'!BQI' 就是默认的验证码;


    Step2: 密码加密

    腾讯JS加密代码:
    M=C.p.value;
    var I=hexchar2bin(md5(M));
    var H=md5(I+pt.uin);
    var G=md5(H+C.verifycode.value.toUpperCase());

    密码“123qwe”通过以上加密方法,得到的结果与抓包请求中的加密值一样(请求截图见Step3)


    pt.uin =  \x00\x00\x00\x00\x83\x08\xee\x49     QQ号 2198400585的16进制 000000008308ee49


    Step3:登录请求
    捕获请求:
    https://ssl.ptlogin2.qq.com/login?ptlang=2052&aid=522005705&daid=4&u1=https%3A%2F%2Fmail.qq.com%2Fcgi-bin%2Flogin%3Fvt%3Dpassport%26vm%3Dwpt%26ft%3Dptlogin%26ss%3D%26validcnt%3D%26clientaddr%3D2198400585%40qq.com&from_ui=1&ptredirect=1&h=1&wording=%E5%BF%AB%E9%80%9F%E7%99%BB%E5%BD%95&css=https://mail.qq.com/zh_CN/htmledition/style/fast_login148203.css&mibao_css=m_ptmail&u_domain=@qq.com&uin=2198400585&u=2198400585@qq.com&p= 15A6FB7C3A0F0F12BE2BB2BFA52F7BDF&verifycode= !BQI&fp=loginerroralert&action=2-6-30865&g=1&t=1&dummy=&js_type=2&js_ver=10009



    登录成功后返回的数据:

    ptuiCB('0','0','https://ssl.ptlogin2.mail.qq.com/check_sig?pttype=1&uin=2198400585&service=login&nodirect=0&ptsig=9mgQ2dwnOftcwH965zksFLFPidMP2zxKQZJXkxdfOy0_&s_url=https%3a%2f%2fmail.qq.com%2fcgi-bin%2flogin%3fvt%3dpassport%26vm%3dwpt%26ft%3dptlogin%26ss%3d%26validcnt%3d%26clientaddr%3d2198400585%40qq.com&f_url=&ptlang=2052&ptredirect=101&aid=522005705&daid=4&j_later=0&low_login_hour=0&regmaster=0','1','登录成功!', 'QQ');



    分析以上两种方法,采用非对称式(公/私钥)加密方法较为安全,已建议APP小组研发采用RSA非对称加密,使用HTTPS实现登录

    出处:Findyou




    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏6
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-6-9 11:29
  • 签到天数: 30 天

    连续签到: 1 天

    [LV.5]测试团长

    2#
    发表于 2016-10-12 15:58:55 | 只看该作者
    厉害,楼主有RSASM2SM3的算法代码吗
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-11-8 12:09
  • 签到天数: 547 天

    连续签到: 1 天

    [LV.9]测试副司令

    3#
    发表于 2016-10-14 14:36:05 | 只看该作者
    好厉害的技术贴
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    前天 09:05
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    4#
     楼主| 发表于 2016-10-14 14:36:49 | 只看该作者

    你也好分享一点了。。。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 18:02 , Processed in 0.076267 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表