本文依然是团队大佬 非尘 学习逆向的学习笔记,这一系列都将以实验的方式进行知识点学习和总结,后续将持续更新,不喜勿喷~
本文及后续文章中使用到的靶场地址:
https://adworld.xctf.org.cn/task/task_list?type=mobile&number=6&grade=0。
![移动安全(七)|实战获取某APP登陆算法 移动安全(七)|实战获取某APP登陆算法]()
Jeb,Fiddler,雷电模拟器,真机nexus5,spyder(hook用的,也可以notpad++)
1)首先将app安装到雷电模拟器中,打开运行,点击登录,使用Fiddler抓取登录包:
![移动安全(七)|实战获取某APP登陆算法 移动安全(七)|实战获取某APP登陆算法]()
2)通过抓包分析发现,该app请求登录的时候,传递的数据只有sign加密未知,剩下几个参数都是已知的,因此破解加密算法的关键就在sign这个参上。使用jeb搜索字符串”sign”,发现多处存sign,然后可以通过别的字段来进行定位,通过分析登录包和代码可得知,多处存在sign区别在system_name,然后在我们初步断定的地方下断点来动态调试(在所有你认为可疑的地方下断点是非常必要的,定位关键代码往往是我们破解的关键),下断点的快捷键是ctrl+b。
![移动安全(七)|实战获取某APP登陆算法 移动安全(七)|实战获取某APP登陆算法]()
![移动安全(七)|实战获取某APP登陆算法 移动安全(七)|实战获取某APP登陆算法]()
3)然后使用jeb开始动态调试,发现成功断在刚刚的位置,然后分析此处的代码逻辑。通过代码可知,sign的取值为b.a()的返回值,传递进去两个参数,一个为请求参数的hashMap值,注意,此时参数params这个集合中是没有将time添加进去的,另一个为时间戳,跟进b.a(),发现params.getURLHashMap是HashMap类型的(HashMap中存储的是键值对方式),详细代码分析如图所示:
![移动安全(七)|实战获取某APP登陆算法 移动安全(七)|实战获取某APP登陆算法]()
![移动安全(七)|实战获取某APP登陆算法 移动安全(七)|实战获取某APP登陆算法]()
4)通过分析可知,sign的值是将如下图所示的几个参数排序后,取其值然后进行某些字符的替换,然后进行MD5处理,然后拼接上一固定字符串和时间戳进行二次md5操作即为最终的sign值。
![移动安全(七)|实战获取某APP登陆算法 移动安全(七)|实战获取某APP登陆算法]()
5)为了验证我们的逻辑是否正确,我们可以采用多种方式来进行验证,如动态调试获取相应的返回值,hook获取返回值,匿名管道(哈哈,也称log日志打印,smali插桩)方式验证。在这里我使用动态调试和hook的方式来进行验证(由于不会将java中hashmap类型转为js中的hashmap类型,由此借助动态调试观察一下加密前的参数值)。首先在tostring处下断点,然后启动调试到此处,查看对应寄存器的值v9,可发现为其值为account=18434366456&clientid=1&device_id=865166020016286&ip=172.16.2.12&modules=cloudlogin%3A1&password=qwerasdf&siteid=10001&system_name=android&type=android,和我们分析的完全一样
![移动安全(七)|实战获取某APP登陆算法 移动安全(七)|实战获取某APP登陆算法]()
![移动安全(七)|实战获取某APP登陆算法 移动安全(七)|实战获取某APP登陆算法]()
![移动安全(七)|实战获取某APP登陆算法 移动安全(七)|实战获取某APP登陆算法]()
6)然后使用Friday的hook查看两次md5的值,发现最后一次hook的值和我们抓包获取的值完全一样,验证了我们的分析没有错误。
![移动安全(七)|实战获取某APP登陆算法 移动安全(七)|实战获取某APP登陆算法]()
![移动安全(七)|实战获取某APP登陆算法 移动安全(七)|实战获取某APP登陆算法]()
团队现招募一名Android逆向方向的大佬,或者有过相关Android开发经验的亦可。
团队现多为攻防和漏洞挖掘方向(团队人员17名),仅存的逆向方向的非尘希望能够有个一起学习和研究的队友,因此希望能够招募一名有缘人,有意者可以将简历发送至团队邮箱:
[email protected]
期待大佬的加入~
往期经典推荐:
漏洞笔记|记一次与XXE漏洞的爱恨纠缠
深入探究浏览器编码及XSS Bypass
Apache Solr远程命令执行复现
“最后”的Bypass CDN 查找网站真实IP
渗透实战(一)|BSides Vancouver 2018 (Workshop)
移动安全(一)|Android设备root及神器Xposed框架安装
内网信息收集篇
MSF 下域内渗透
>>关于我们:
WhITECat安全小组隶属于起源实验室分支安全小组,主要致力于分享小组成员技术研究成果、最新的漏洞新闻、安全招聘以及其他安全相关内容。团队成员暂时由起源实验室核心成员、一线安全厂商、某研究院、漏洞盒TOP10白帽子等人员组成。
欢迎各位大佬关注^_^
本文始发于微信公众号(WhITECat安全团队):移动安全(七)|实战获取某APP登陆算法
评论