记录一次金融APP防重放的分析过程

admin 2024年11月14日22:48:29评论8 views字数 1524阅读5分4秒阅读模式

“ 在某一次APP测试中,遇到抓包重放时会出现错误的提示,因此本文主要围绕该APP是如何实现防重放的目的进行探索 

开局先放一个功能点:

记录一次金融APP防重放的分析过程

01

实战分析

环境: 
抓包:Postern + Burp
分析:JADX-GUI+Frida
当在正常情况下,APP第一次的请求与数据包是正常的:

记录一次金融APP防重放的分析过程

但是只要数据包的请求体被修改以后重新请求,就会报:ContentisIncorrect

记录一次金融APP防重放的分析过程

经过分析数据包发现,引发错误的原因主要是请求体中的Authorization参数,也正是因此,才引发出了本文章的思考。
首先使用JADX-GUI对APP进行一个反编译逆向分析,并且使用 JADX-GUI 进行全局搜索关键字:Authorization

记录一次金融APP防重放的分析过程

通过搜索结果中发现对应关键字的方法,点进去 进入a 方法,搜索请求体的关键字:phoneNumber,可以看到构造请求参数的函数

记录一次金融APP防重放的分析过程

以上代码主要是有两个判断逻辑,一个登录前的,一个是登录后的,

因为目前还没登录,所以走的是 getNoTokenAuthHeader 的方法,继续跟进该方法分析,
通过跟进该方法基本确认Authorzation 的值是从 getNoTkenAuthHeader 获取的。

记录一次金融APP防重放的分析过程

那么此时可以通过使用Frida hook 的方式看看getNoTkenAuthHeader 方法返回的值什么,具体每次请求时什么参数不同才导致的防重放,直接在JADX-GUI选中对应方法右键复制为Frida片段可直接调试。

记录一次金融APP防重放的分析过程

复制后代码如下,并保存为JS:

记录一次金融APP防重放的分析过程

frida去attach应用:frida -UF -l aaa.js WorkSpace,通过调试可以看到两次请求,只有中间的某个数值在变,通过代码得知,变动的内容为时间戳

记录一次金融APP防重放的分析过程

通过返回代码内容进行确认得知,传入的参数中在不断变动的内容是为时间戳,此时已基本可以确定对应的生成逻辑

记录一次金融APP防重放的分析过程

既然存在生成Authorzation参数并且写入在请求头中,那么有写入肯定就有读取,并且读取的时候会做加密处理,我们目前就需要找到程序是如何进行加密处理的。
这个时候我们再次重新全局搜索Authorzation数,并且找到对应的获取该参数的方法

记录一次金融APP防重放的分析过程

通过全局搜索找到对应的方法位置后直接继续跟踪分析

记录一次金融APP防重放的分析过程

通过分析发现在程序获取Authorzation参数后又将该参数传入到了a方法中进行处理,处理完毕以后再次返回。接下来我们继续跟进a方法

记录一次金融APP防重放的分析过程

发现跟进以后是一个加密方法,即使我们可以继续使用Frida Hook这个加密方法查看传入的参数有什么不同,这次我们可以看到又有一个参数在变,这个参数是一个MD5值

记录一次金融APP防重放的分析过程

通过返回外层代码进行分析发现这个方法对原先生成好的 Authorization 值再做一层特殊处理,该处理主要是对请求体的内容进行md5加密,然后再进行拼接,可看下方代码的处理流程

记录一次金融APP防重放的分析过程

并且可以看到最后一行将最终处理好的Authorization参数赋值到请求头中,在这个过程还调用了B方法进行加密处理,我们可以跟进去看看,并且使用Frida进行Hook

记录一次金融APP防重放的分析过程

到这,基本也明确了该APP防重放攻击的处理方式,那么接下来我们就可以通过对应的方法进行自动化加密,来绕过APP防重放

02

实战测试

目前思路已经很明确了,通过RPC+Burpy结合的方式完成数据包的自动化加密操作,首先我们可以自定义代码

记录一次金融APP防重放的分析过程

完成代码自定义后,我们可以通过将该代码引入Burpy进行相互的调用:

记录一次金融APP防重放的分析过程

完成以上代码编写以后即可在Burp中对Burpy插件进行简单配置,即可完成对Authorization参数的自动化加密过程从而来绕过APP防重放

记录一次金融APP防重放的分析过程

好啦~本文内容就到这里啦,我们下期再见!

点击下方名片即可关注我们公众号,关注我们,给你带来不一样的精彩!

原文始发于微信公众号(云谷十三):记录一次金融APP防重放的分析过程

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月14日22:48:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记录一次金融APP防重放的分析过程https://cn-sec.com/archives/1649097.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息