当前位置: 首页 > news >正文

利用Hook挖掘APP支付逻辑漏洞

利用Hook挖掘APP支付逻辑漏洞

0、前言

今天,就和大家分享一次从抓包受挫到逆向源码,最终通过 Hook 技术实现降维打击,成功挖掘支付漏洞的实战过程。

1、功能点分析

登录app很多功能需要充钱才能使用,那么主线任务就是查看是否有支付漏洞,不然app其他功能点也无法使用就没有挖掘的必要性了

支付界面有两个产品选择,随便选择,主要是抓取数据包分析


查看支付数据包,完蛋存在加密

面对密文,我们不能硬刚。根据经验,我们需要先提取数据包中的核心关键字,作为后续逆向分析的“路标”。提取出的关键字如下

/mta/build_alipay_ordebuild_alipay_ordedata

2、逆向源码寻找突破口

既然抓包走不通,我们就直接把 APK 拖进反编译工具(如 Jadx),通过刚才提取的关键字全局搜索,看看这串密文到底是怎么生成的。

运气不错,查看调用链,我们非常顺利地找到了拼接这串 URL 和参数的目标方法。代码如下:

public void m9426(String str, String str2, String str3, String str4, String str5, String str6, String str7) { String str8 = Urls.URL_BUILD_ALIAY_ORDER + "?data="; HashMap map = new HashMap(); map.put(DBDefinition.TITLE, str2); map.put("pay_for_what", this.f8408); map.put("pay_for_what_des", str3); map.put("money", str4); map.put("id", this.f8407 + ""); map.put("pay_count", SdkVersion.MINI_VERSION); map.put("dead_time", str5); map.put("combined_id", str); map.put("diy1", str6); map.put("user_id", str7); PayBusUtils.post(2001, "开始生成支付订单..."); String str9 = f8406; if (Spu.m11550(str9)) { C4448.m9567(str9, "0.开始生成支付订单-->" + map); } String str10 = str8 + XMBSign.buildUrlData(map); if (Spu.m11550(str9)) { C4448.m9567(str9, "1.服务器生成订单:开始请求链接-->" + str10); } XMBOkHttp.doGet(str10, new C4393());}

3、核心思路转换:不解密,只劫持!

分析到这里,很多师傅可能会陷入一个误区:死磕XMBSign.buildUrlData(map)这个加密方法。

但是根据笔者的后续分析,这个加密的 Key 是动态生成的,如果非要把加密算法彻底还原并写出单独的 Python 脚本,不仅耗时耗力,而且很容易卡壳。

这个时候,我们需要转换思路:“借鸡生蛋”。

既然我们知道m9426这个方法接收的是明文参数(尤其是str4代表着money),我们为什么不在这个方法执行之前,把它拦下来呢?

核心 Hook 攻击逻辑如下:

  1. 确定 Hook 点: 锁定m9426这个方法。

  2. 拦截与读取: 当用户在前端点击“购买”时,APP 会尝试调用m9426准备组装数据。此时,我们的 Hook 脚本(如 Frida 或 Xposed)介入,拦截这次调用,并读取传入的所有明文参数。

  3. 恶意篡改: 我们在脚本中,将代表金额的str4参数(假设原本是"99.00")强行修改为"0.01"

  4. 放行并回传(关键点): 我们并不需要自己去计算后续的签名和加密。我们直接利用修改后的参数("0.01"),主动调用 APP 自身的m9426方法。

  5. 完成欺骗: APP 后续的代码会乖乖地拿着我们修改后的"0.01",塞进 HashMap,使用它自己合法的动态 Key 进行签名加密,最终向服务器发送一个完美伪装、且签名绝对正确的“0.01元”购买数据包。

这是笔者画的草图,大概就是如下的逻辑

4、漏洞利用与最终效果

基于上述思路,我编写了对应的 Hook 脚本(由于具有一定攻击性,具体代码暂不放出,大家理解思路即可)。

运行脚本后,我成功在控制台拦截到了真实的明文数据包:

接下来,开启我们的“篡改放行”逻辑:

最后,我们回到前端走完支付流程。果然,调起支付界面时,订单金额已经被成功篡改!我们最终以 0.01 元的代价,成功购买了该 APP 的终身会员。最后编写报告提交平台换证书。

学习资源


如果你也是零基础想转行网络安全,却苦于没系统学习路径、不懂核心攻防技能?光靠盲目摸索不仅浪费时间,还消磨自己信心。这份 360 智榜样学习中心独家出版《网络攻防知识库》专为转行党量身打造!

01内容涵盖

这份资料专门为零基础转行设计,19 大核心模块从 Linux系统、Python 基础、HTTP协议等地基知识到 Web 渗透、代码审计、CTF 实战层层递进,攻防结合的讲解方式让新手轻松上手,真实实战案例 + 落地脚本直接对标企业岗位需求,帮你快速搭建转行核心技能体系!

这份完整版的网络安全学习资料已经上传CSDN【保证100%免费】

**读者福利 |***CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 *(安全链接,放心点击)

02 知识库价值

  • 深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案
  • 广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南
  • 实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。

03 谁需要掌握本知识库

  • 负责企业整体安全策略与建设的CISO/安全总监
  • 从事渗透测试、红队行动的安全研究员/渗透测试工程师
  • 负责安全监控、威胁分析、应急响应的蓝队工程师/SOC分析师
  • 设计开发安全产品、自动化工具的安全开发工程师
  • 对网络攻防技术有浓厚兴趣的高校信息安全专业师生

04部分核心内容展示

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。

1、网络安全意识

2、Linux操作系统

3、WEB架构基础与HTTP协议

4、Web渗透测试

5、渗透测试案例分享

6、渗透测试实战技巧

7、攻防对战实战

8、CTF之MISC实战讲解

这份完整版的网络安全学习资料已经上传CSDN【保证100%免费】

**读者福利 |***CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 ***(安全链接,放心点击)**

总结

遇到加密数据包时,不要一味地死磕加密算法本身。“上游拦截,篡改放行” 的 Hook 思路往往能达到事半功倍的效果。

对于开发者的修复建议:

此类漏洞的本质是服务端缺乏校验。价格不应该由客户端计算或传递(哪怕你做了极其复杂的加密验证机制)。正确的做法是:客户端只传递产品 ID(如item_id=1001),具体的金额必须由服务端通过查询数据库得出,并在服务端发起真正的支付请求

郑重免责声明

  1. 研究与防御目的:本文所分享的所有技术原理、逆向思路及实战案例,仅严格用于网络安全技术讨论、防御机制研究及安全测试学习。旨在帮助广大开发者和安全从业者了解攻击手法,进而完善应用的安全防护体系。

  2. 合法授权与脱敏:文中所涉及的漏洞挖掘与测试过程,均在已获得合法授权的自有/测试环境中进行,且相关敏感信息(如 APP 名称、真实接口、具体代码等)均已做过严格的脱敏处理。

  3. 严禁非法利用:强烈呼吁广大读者严格遵守《中华人民共和国网络安全法》及相关法律法规。 请勿将本文涉及的任何技术手段(包括但不限于 Hook 技术、参数篡改、反编译等)用于任何未授权的非法渗透测试、破解牟利、破坏他人计算机信息系统或侵犯他人合法权益的行为。

  4. 后果自负:读者若以本文内容为依托,在未经授权的情况下对任何系统、应用进行实际攻击或非法测试,所引发的一切直接或间接的法律后果及连带责任,均由具体操作者本人完全承担。本文作者/平台对此概不负责,亦不承担任何连带法律责任。

情况下对任何系统、应用进行实际攻击或非法测试,所引发的一切直接或间接的法律后果及连带责任,均由具体操作者本人完全承担。本文作者/平台对此概不负责,亦不承担任何连带法律责任。**

文章来自网上,侵权请联系博主

http://www.jsqmd.com/news/625262/

相关文章:

  • Markdown Viewer:浏览器中的终极Markdown渲染神器,让你告别单调预览
  • 【实战部署+源码解析】YOLO11蓝莓成熟度检测:从数据集构建到Web系统全流程详解
  • 从TIN构建到Voronoi图:探索Delaunay三角网的核心算法与应用
  • 从CAN到CAN FD:基于SocketCAN的机器人关节电机高速通信实战
  • Pixel Dream Workshop 快速上手:三分钟完成你的第一幅AI画作
  • clickhouse可以表关联吗
  • 终极Neuralangelo实战指南:从零构建高保真3D重建流水线
  • 如何在2026年继续畅玩Flash游戏:终极免费解决方案指南
  • 用App Inventor给ESP8266做个遥控App,5分钟搞定智能灯开关(保姆级教程)
  • Day50阶段案例--登录页与首页制作
  • Yolov8在RK3588上进行自定义目标检测(二)
  • 2025届最火的五大AI辅助写作神器推荐榜单
  • Rust crate 构建与依赖管理
  • yolov5与yolov8的区别
  • STM32F103C8T6驱动OV2640摄像头:从1FPS到3FPS的性能优化实战(附源码)
  • 如何将PerfView与Azure DevOps集成:实现持续性能监控的完整指南
  • Pixel Epic · Wisdom Terminal 计算机视觉应用:YOLOv5目标检测模型协同优化案例
  • 员工轨迹软件有哪些?3类主流产品对比与企业选型指南 - 数智AI前沿
  • 超越传统检测:VMDE虚拟环境识别技术的深度解析与实战应用
  • 从Bulk CMOS到先进工艺:Sentaurus TCAD中几何结构与掺杂如何‘捏’出你的Ion和Ioff
  • MySQL优化全攻略:索引、SQL与分库分表的最佳实践记
  • 如何快速上手Remax:5分钟创建你的第一个跨平台小程序
  • KDE桌面Mac化实战:从Launchpad到全局菜单的完整改造指南
  • 重新學習日語 2026 年版
  • 抖音批量下载神器:5分钟搞定无水印视频批量下载
  • Yolov8在RK3588上进行自定义目标检测(四)
  • Go语言的sync.RWMutex中的分析源码
  • Razer-macos核心组件深度剖析:设备管理器与动画系统
  • 终极免费方案:如何让NVIDIA显卡完美解决显示器色彩过饱和问题
  • Klib未来展望:探索轻量级C库的无限可能与社区共建路线图