一键过某金融apk抓包检测并定位加密位置(一)

遇到了某个金融app,有各种检测,觉得可以分享一下。


一键过某金融apk抓包检测并定位加密位置(一)

声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!

一键过某金融apk抓包检测并定位加密位置(一)


打开apk,因为用的是kernelSu隐藏的root,一切正常,没有闪退,没有报错。

开启代理抓包,网络连接失败,抓不到登录包。不出意外是存在证书或者代理检测。

一键过某金融apk抓包检测并定位加密位置(一)

一把梭哈,先上LSPosed插件,算法助手pro,非常的好用,继承了很多功能

算法助手 https://mp.weixin.qq.com/s/JPzjpQ3ZoY7cd5K1ZywTZA

勾选网络环境的几个

一键过某金融apk抓包检测并定位加密位置(一)

burp尝试抓包,成功抓到数据包。

一键过某金融apk抓包检测并定位加密位置(一)

如上图所示,刚过了一座山,又有一条请求包和响应包都加密了。接下来我们寻找加密的位置和算法。

要寻找加密位置,有几种思路。

  • fuzz定位加密方法:假设apk采用了通用的加密算法,那我们frida hook加密算法的脚本 或者借助算法助手的算法分析定位。

  • 我们发送请求是需要点击按钮的,我们可以hook按钮,然后根据调用栈找到相应按钮事件的代码位置,然后分析上下文

  • 如果类名未混淆,根据开发的命名习惯,objection搜索类中带有encrypt、security等字段,然后批量hook这些,查看是哪个类相应了。

apk脱壳

fart脱壳,或者其他脱壳办法
有一个免费的在线脱壳网站,挺好用的,需要微信注册登录
https://nop.gs/

一键过某金融apk抓包检测并定位加密位置(一)

脱完可以看了,搜索关键词,找到了几个类,优先看自定义的加密类

一键过某金融apk抓包检测并定位加密位置(一)

查看哪些类引用了这些类

一键过某金融apk抓包检测并定位加密位置(一)

依次查看后,确定是下图的类是请求包的加密类,算法sm国密系列

一键过某金融apk抓包检测并定位加密位置(一)

最后得出请求包加密的组成部分

SM2(“要加密的字符串”, “密钥”) + 分隔符 + SM3(“要加密的字符串”)
通过hook 加密函数,可得到明文的信息。

第一次构造数据包

我根据得到的算法,开始构造自己的数据包。然后我就开始了漫长的测试,失败,再测试。一度让我怀疑人生,直到我对比了我SM3的hash和请求包中的hash,二者完全不一样。

我恍然大悟,丫的开发他魔改了加密算法!!!
一阵头秃,只能去看分析加密算法了。定睛一看,哦吼,是native层的,在so里面。

一键过某金融apk抓包检测并定位加密位置(一)

也是十分幸运,so中函数名没进行混淆

一键过某金融apk抓包检测并定位加密位置(一)

然而,我浅薄的so功底,着实有些捉襟见肘,跟着跟着就找不到了。不过,我们没必要这么死板。要构造加密请求包不一定要完全复现出加密步骤,可以通过frida hook,然后rpc调出去,又或者根据通过unidbg模拟环境主动调用so函数。


这些留到下期再说。



往期推荐

安服水洞系列 | Tomcat堆栈跟踪启用漏洞

frida|修复被加固的so文件

更换了麒麟操作系统

web指纹finger字典合并(附源码)

在混淆的so中寻找sign签名函数

价值$5,825赏金的tomcat信息泄露(CVE-2024-21733)

分析Actuator未授权出现的原因

代码审计 | API批量分配导致的普通用户垂直越权到admin

代码审计 | 发现项目的swagger-ui未授权访问

好用!一键化搭建各种虚拟机



原文始发于微信公众号(进击的HACK):一键过某金融apk抓包检测并定位加密位置(一)

版权声明:admin 发表于 2024年10月3日 上午9:01。
转载请注明:一键过某金融apk抓包检测并定位加密位置(一) | CTF导航

相关文章