APP安全分析之丁盯智能门磁

2015-03-25 236123人围观 ,发现 7 个不明物体 终端安全

0×01前言: 

   

看了相关密码找回漏洞的分析文章后,打算找个应用来进行这方面的分析研究。最近刚入手了丁盯智能门磁这个智能家居硬件,它通过硬件和软件app的结合,来监控门的安全性。看到它验证码中只是四位简单的数字,估计其中可能存在安全漏洞,就着手进行了相关的测试。

存在的相关漏洞已经通过了相关企业,已经完成了修复。现在的文章来做个记录和对有需要的同学做个参考。

0×02安全漏洞:

软件后台设计中存在缺陷导致可遍历账号信息,并重置任意账户密码

通过应用app的使用,发现后台设计存在两个问题:

1.login1接口会在发送密码前先进行是否存在账号进行检测,返回相应的错误码,可以随机遍历手机号测试接口取得存在的手机号列表,可能因为注册用户较少原因,测试158号码时候只得到一个注册手机信息。

测试代码:

https://github.com/joeyxy/python/blob/master/crawler/dingding/dingding.py

2.找回密码功能中,通过使用应用,观察其逻辑,反编译其软件,找到了aes加密算法及相应的key及iv向量组成方式。因为使用了4位纯数字弱验证码,虽然设定了过期时间为120秒,但是后台没有限定提交的次数,实际测试中,基本在不到一分钟的测试中就可以利用password2接口设计缺陷破解验证码,直接提交修改其它注册用户的密码。

测试代码:

https://github.com/joeyxy/python/blob/master/crawler/dingding/poc_dd3.py

0×03:分析过程

这里使用到的分析工具主要有:Burp Suite,JD-Jui

手机通过配置代理将数据发送到Burp Suite分析

遍历账号login相应细节,存在账号则返回码为:0

提交账号请求:

服务器对账号请求的返回数据

测试破解验证码,修改用户密码。首先是请求接口password1,提交手机号码和参数,请求发送验证码,接口会返回aes加密所要使用的相关key,然后通过aes加密算法使用key+验证码和iv加密验证码加密码的字符串算出密码,发送给给服务器,这里代码是通过遍历测试,根据接口返回的信息,检查返回码,错误码为0就表示修改密码成功,打印相关消息。

反编译apk包所得到的加密算法:

找回密码password1接口测试:

       

     

更新密码password2接口测试:

将上面的测试过程编码,测试结果:

0×04 总结:

应用后台存在的漏洞主要是在于没有限定后台请求的次数,同时使用了简单数字验证码。在分析的过程中,花费时间多的地方在于对于加密算法的分析,通过反编译软件来找到AES算法及相应key与iv的组成。下面的工作就是进行编码测试了。

[作者/joeyxy,转载需注明来自FreeBuf黑客与极客(FreeBuf.COM)]

相关推荐

这些评论亮了

  • nima 回复
    我还以为高山大的嵌入式、单片机、硬件通信....呢。搞了半天,还是尼玛的web、http....
    )39( 亮了
发表评论

已有 7 条评论

取消
Loading...

这家伙太懒,还未填写个人描述!

1 文章数 4 评论数 0 关注者

特别推荐

文章目录

    文章目录

      推荐关注

      官方公众号

      聚焦企业安全

      填写个人信息

      姓名
      电话
      邮箱
      公司
      行业
      职位
      css.php