mmmhua支付链分析
掌握这个APP的支付逻辑其实蛮简单,主要关注调起支付软件之前的创建订单请求。
1、先尝试发送支付时发送的一个请求,从抓的包来看,可能是更新支付状态,获取blottersCode和后续更新账号余额的api。![[Pastedimage20250713211520.png]](/post/41f7b84a/Pastedimage20250713211520.png)
先尝试使用登录时的加密算法发送这个请求,但是返回error
验证究竟是不是使用的算法b:
使用frida hook函数,发现发送这个请求的过程中是有调用b的,初步推断可能就是使用的b算法,经过我实现的log_decode算法,把这个请求的data解密后确能得到真实的data,就能肯定使用的是b算法,那么返回error就要排查其他原因。最后发现是因为没有使用j函数,导致传入log_encode的是str而不是json,这下把strTojson改到log_encode实现
实现了伪造订单请求![[Pastedimage20250713211744.png]](/post/41f7b84a/Pastedimage20250713211744.png)
1 | def log_decode(self,encoded_bytes): |
返回的data字段里包含众多账单信息,以及回调函数,还有签名字段,这下不用分析了,使用了RSA签名,没看到公钥,也搞不到私钥,没办法篡改订单金额之类的。
整个支付链通过后端验签+第三方回调的方式把核心完全绕过客户端,如果还需要进一步找破绽的话,可能就是看服务端的接口有没有漏洞了,或者分析第三方软件了。