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

iOS内购欺诈漏洞

iOS内购欺诈漏洞

  • 1.iOS内购欺诈漏洞概述
  • 2.伪造的凭证
  • 3.漏洞修复方案

1.iOS内购欺诈漏洞概述

黑产别的App上低价充值(比如1元)换取苹果真实凭证,再在目标App上下单高价(648元)商品,传入该凭证,如果目标App服务端苹果凭证校验接口存在漏洞,只校验了凭证中商品和订单信息,未校验凭证中App来源(bundleID),则会验证通过,进而发货

对黑产来说,黑产实际只支付了1元,就能买到目标App的648元商品;对于目标App来说,他连这1元都没得到(因为是在别的App上充的),完全被白嫖648元商品。可谓伤害极大

还原盗刷步骤:

  • 黑产通过破解(比如抓网络请求)目标App客户端,获得648元商品的苹果商品id(product_id)值。
  • 黑产自己上架一款App,在苹果后台添加一款1元的内购商品,设置苹果商品id(product_id)值和目标App一致。
  • 黑产在自己的App里真实付款1元商品,拿到苹果返回的真实凭据(receipt)和苹果交易id(transaction_id)。
  • 黑产破解目标App客户端后,直接调目标App的苹果凭证校验接口,把上面获得的凭据(receipt)和苹果交易id(transaction_id)作为参数传进去。
  • 目标App服务端拿着凭据去苹果后台校验,由于凭据是真实的,苹果验证通过。目标App服务端解析凭证,校验凭证内参数,核对product_id正确、核对transaction_id唯一性通过,全部校验通过,发货。

漏洞的主要原因:

  • 苹果后台,苹果商品id(不同开发者账号下)可以重复;
  • 目标App服务端凭证校验接口,未校验凭证中App来源(bundleID)。

2.伪造的凭证

下面是被攻击App服务端提供的一段日志,记录了“伪造的”凭证样式

  • 最外层的bundle_id,并不是目标App的包名,而是一个不认识的App包名。这个就是黑产真实充值的App。
  • in_app数组里面product_id,却是目标App里有效的苹果商品id,正是648元商品的product_id。
  • 再看transaction_id。这里的transaction_id实际上是黑产App内充值产生的,并不是目标App内产生的。因为transaction_id只有在苹果内购付款成功后才会生成,且只能由客户端传给服务端,所以服务端是没法校验transaction_id是否来源于自己的App。服务端能做的就是判断transaction_id是否重复,防止重放攻击。因为黑产每次充值都会真实的充一笔,所以transaction_id并不会重复,这也是目标App服务器验证transaction_id通过的原因。
{"receipt_type": "Production","adam_id": 6441231333,"app_item_id": 6441231333,"bundle_id": "com.apps.slanCaizhuang", //这并不是目标App的bundleID,而是黑产自己的的App"application_version": "3","download_id": 502222222222222222,"version_external_identifier": 855304439,"receipt_creation_date": "2023-04-12 16:59:25 Etc/GMT","receipt_creation_date_ms": "1681318765000","receipt_creation_date_pst": "2023-04-12 09:59:25 America/Los_Angeles","request_date": "2023-04-12 17:16:54 Etc/GMT","request_date_ms": "1681319814498","request_date_pst": "2023-04-12 10:16:54 America/Los_Angeles","original_purchase_date": "2023-03-11 05:00:05 Etc/GMT","original_purchase_date_ms": "1678510805000","original_purchase_date_pst": "2023-03-10 21:00:05 America/Los_Angeles","original_application_version": "3","in_app": [{"quantity": "1","product_id": "com.xiaomi.haha123", //这里却是目标App的product_id"transaction_id": "210000000000000",//黑产自己App上支付产生的transaction_id"original_transaction_id": "210000000000000","purchase_date": "2023-04-12 16:59:25 Etc/GMT","purchase_date_ms": "1681318765000","purchase_date_pst": "2023-04-12 09:59:25 America/Los_Angeles","original_purchase_date": "2023-04-12 16:59:25 Etc/GMT","original_purchase_date_ms": "1681318765000","original_purchase_date_pst": "2023-04-12 09:59:25 America/Los_Angeles","is_trial_period": "false","in_app_ownership_type": "PURCHASED"}],"environment": "Production","status": 0
}

3.漏洞修复方案

1、服务端凭证校验时,加上bundleID的校验即可

即服务端去苹果那边校验通过后,还需核对凭证内以下参数:

  • bundle_id,是否为你们自己的App(防止跨App充值);
  • product_id,是否为下单时对应的商品id(防止App内部以小博大);
  • transaction_id,是否已经发过货(防止重放攻击)

2、共享密钥(推荐)

服务端请求苹果凭证校验接口时,除了传receipt-data字段,再额外传一个password参数(苹果后台生成的共享密钥)。这样苹果那边核对凭证时,除了验证凭证是否有效,还会核对凭证和密钥是否匹配。如果不匹配苹果会返回错误信息

官方文档地址:https://developer.apple.com/documentation/appstorereceipts/requestbody?language=objc

相关文章:

iOS内购欺诈漏洞

iOS内购欺诈漏洞 1.iOS内购欺诈漏洞概述2.伪造的凭证3.漏洞修复方案 1.iOS内购欺诈漏洞概述 黑产别的App上低价充值(比如1元)换取苹果真实凭证,再在目标App上下单高价(648元)商品,传入该凭证,如…...

【网络服务】正向代理和反向代理到底是什么意思

🚀 个人主页 极客小俊 ✍🏻 作者简介:程序猿、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 前言 在学习和…...

【算法】记忆化搜索

快乐的流畅:个人主页 个人专栏:《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火,在为久候之人燃烧! 文章目录 引言一、不同路径二、最长递增子序列三、猜数字大小 ||四、矩阵中的最长递增路径总结 引言 记忆化搜索&…...

博客系统多模块开发

创建工程 创建父工程 删除src目录&#xff0c;在pom.xml添加依赖&#xff1a; <!--统一版本 字符编码--><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.b…...

pdf阅读器哪个好用?五款PDF阅读器大比拼

pdf阅读器哪个好用&#xff1f;在数字化时代&#xff0c;PDF文档因其跨平台、跨设备的便捷性&#xff0c;已成为工作、学习和生活中不可或缺的一部分。而一款优秀的PDF阅读器&#xff0c;则能极大地提升我们处理PDF文档的效率与体验。今天&#xff0c;就让我们一起探索五款备受…...

C#实现Queue的加锁和解锁

在C#中&#xff0c;可以使用lock语句来对队列进行加锁和解锁&#xff0c;以确保在多线程环境下的线程安全。以下是一个简单的示例&#xff1a; using System; using System.Collections.Generic; using System.Threading;public class ThreadSafeQueue<T> {private read…...

北京邮电大学人工智能考数据结构,均分370!北京邮电大学计算机考研考情分析!

北京邮电大学&#xff08;Beijing University of Posts and Telecommunications&#xff09;&#xff0c;简称北邮&#xff0c;是中华人民共和国教育部直属、工业和信息化部共建的全国重点大学&#xff0c;位列国家“211工程”、“985工程优势学科创新平台”、“世界一流学科建…...

1. lambda初体验

首先声明一个函数式接口&#xff0c;就只接口内只有一个抽象方法 //函数式接口 public interface Factory {Object getObject();}接口实现类 public class SubClass implements Factory {Overridepublic Object getObject() {return new User();}}User类 public class User …...

C#之显示转换

在C#中显示转换分为三种本别是: 括号强转&#xff0c;parse法&#xff0c;convert法。下面就为大家介绍一下吧&#xff01;&#xff01;&#xff01; 括号强转 作用: 一般情况下 将高精度的类型转换为低精度 语法: 变量类型 变量名 (转换的变量类型名称) 变量&#xff1b; …...

汇编原理(三)编程

源程序&#xff1a; 汇编指令&#xff1a;有对应的机器码与其对应 伪指令&#xff1a;无对应的机器码&#xff0c;是由编译器来执行的指令&#xff0c;编译器根据伪指令来进行相关的编译工作。 ex1:XXX segment、XXX ends这两个是一对成对使用的伪指令&#xff0c;且必须会被用…...

[MySQL数据库] Java的JDBC编程(MySQL数据库基础操作完结)

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏:&#x1f355; Collection与数据结构 (91平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 &#x1f9c0;Java …...

绿色瓶装水“暗战”竞争越发激烈,华润饮料谋上市同时多地扩产能

《港湾商业观察》黄懿 4月23日&#xff0c;纯净水牌“怡宝”母公司华润饮料&#xff08;控股&#xff09;有限公司&#xff08;下称“华润饮料”&#xff09;向港交所主板提交上市申请&#xff0c;联席保荐人为中银国际、中信证券、美银美林、瑞银集团。 在华润饮料递表不久之…...

C语言之指针详解(4)

文章目录 一、回调函数二、qsort使用举例2.1使用qsort函数排序整型数据2.2使用qsort函数排序结构体数据 三、qsort函数的模拟实现 一、回调函数 首先我们先来了解一下什么是回调函数 回调函数通俗来讲就是一个通过函数指针调用的函数。 如果你把函数的指针&#xff08;地址&am…...

0基础学习小红书博主IP特训营,37天 教你从小白到KOL(13节)

课程内容&#xff1a; 1 第一课:如何做好博主账号定位 .mp4 2 第一课作业,html 3 第二课:如何打造小红书爆款笔记(一)_.mp4 4 第二课:如何打造小红书爆款笔记(二).mp4 5 第二课作业,html 6 第三课:如何高效搭建选题库 .mp4 7 第三课作业,html 8 第四课:破解流量玄学&am…...

【openlayers系统学习】3.1-3.2彩色GeoTIFF图像渲染

一、彩色GeoTIFF图像渲染 Sentinel-2 卫星任务收集并传播覆盖地球陆地表面的图像&#xff0c;重访频率为 2 至 5 天。传感器收集多波段图像&#xff0c;其中每个波段都是电磁频谱的一部分。 2A 级 (L2A) 产品提供以下频段的表面反射率测量&#xff1a; BandDescriptionCentra…...

前端自动将 HTTP 请求升级为 HTTPS 请求

前端将HTTP请求升级为HTTPS请求有两种方式&#xff1a; 一、index.html 中插入meta 直接在首页 index.html 的 head 中加入一条 meta 即可&#xff0c;如下所示&#xff1a; <meta http-equiv"Content-Security-Policy" content"upgrade-insecure-requests&…...

辅助驾驶ADAS功能算法介绍

一、ADAS功能分类 按照行驶域划分,将ADAS功能分为行车功能、泊车功能和主动安全功能。 行车功能 ACC(Adaptive Cruise Control)自适应巡航控制TJA(Traffic Jam Assist)交通拥堵辅助LCC(Lane Centering Control)车道居中控制ICC(Integration Cruise Control)智能巡航系…...

Docker 安装kingbase V8r6

下载 官网下载&#xff0c;注意&#xff1a;这里下载 Docker 版本v8r6 安装 # 导入镜像 docker load -i kingbase.tar# 重命名 docker tag [image-name]:[tag] [new-image-name]:[new-tag]# 删除 docker rmi [image-name]:[tag]# 创建容器 docker run -tid \ --privileged \…...

Python 应用打包成 APK【全流程】

将 Python 应用打包成 APK。 文章目录 步骤 1: 安装 Buildozer 和其依赖Linux (Ubuntu) 环境下安装: 步骤 2: 创建你的 Python 应用步骤 3: 配置 Buildozer步骤 4: 打包成 APK总结 步骤 1: 安装 Buildozer 和其依赖 首先确保你的系统中已安装 Python 和 pip。接下来&#xff…...

jmeter之MD5加密接口请求教程

前言&#xff1a; 有时候在项目中&#xff0c;需要使用MD5加密的方法才可以登录&#xff0c;或者在某一个接口中遇到 登录获取token后才可以进行关联&#xff0c;下面介绍下遇到的常见使用 一、第一种方法&#xff1a;使用jmeter自带的函数助手digest 选择工具&#xff0c;选…...

如何用AI生成高性能无机材料?MatterGen让材料设计革命化

如何用AI生成高性能无机材料&#xff1f;MatterGen让材料设计革命化 【免费下载链接】mattergen Official implementation of MatterGen -- a generative model for inorganic materials design across the periodic table that can be fine-tuned to steer the generation tow…...

TAO循环:构建可测试、可监控的AI智能体行为闭环

1. 项目概述&#xff1a;这不是在写提示词&#xff0c;是在搭建一个微型认知操作系统 “Beyond the Prompt: Engineering the ‘Thought-Action-Observation’ Loop”——这个标题乍看像一篇AI哲学论文&#xff0c;但实操起来&#xff0c;它根本不是在教你怎么写更花哨的promp…...

2026年PMP项目管理培训报考机构深度横评:北上广深考生通关率与投入产出比全解析

一、前言 项目管理认证在职场中的含金量持续攀升&#xff0c;PMP证书已从传统工程领域扩展至产品、研发、运营、咨询等多个岗位&#xff0c;成为简历筛选中的显著加分项。与此同时&#xff0c;国内PMP培训市场呈现高度分散态势&#xff0c;线上线下机构数量庞大&#xff0c;教学…...

为什么你的盐印相总像P图?:Midjourney v6.2最新盐印相渲染漏洞(已验证387组测试图)及绕过方案

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;为什么你的盐印相总像P图&#xff1f; 盐印相&#xff08;Salted Paper Print&#xff09;作为19世纪早期摄影工艺的代表&#xff0c;其本质是依靠氯化钠与硝酸银反应生成感光氯化银&#xff0c;在阳光…...

告别手动建模!用Python脚本自动生成Tetgen四面体网格输入文件(附完整代码)

告别手动建模&#xff01;用Python脚本自动生成Tetgen四面体网格输入文件&#xff08;附完整代码&#xff09; 在工程仿真和科学计算领域&#xff0c;四面体网格生成是有限元分析、流体力学模拟等任务的关键前置步骤。Tetgen作为一款开源的四面体网格生成工具&#xff0c;凭借其…...

Legacy Update完整指南:让老旧Windows系统重获安全更新的5步教程

Legacy Update完整指南&#xff1a;让老旧Windows系统重获安全更新的5步教程 【免费下载链接】LegacyUpdate Get back online, activate, and install updates on your legacy Windows PC 项目地址: https://gitcode.com/gh_mirrors/le/LegacyUpdate 还在为Windows XP、…...

【Midjourney拟物化风格实战指南】:20年视觉设计专家亲授3大材质渲染公式与5步出图工作流

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;拟物化风格的本质与Midjourney语义解码 拟物化&#xff08;Skeuomorphism&#xff09;并非简单的视觉仿拟&#xff0c;而是一种通过材质、光影、物理反馈等多维语义锚点唤起用户认知惯性的交互范式。在AI图像生…...

嘉立创EDA:原理图到PCB学习总结

1.原理图&#xff1a; 关于原理图绘制可以看项目需要哪些板块&#xff0c;去网上搜索开源项目跟着上面一步一步绘制即可&#xff0c;或者利用豆包来一步一步生成板块 主要要注意&#xff1a; 电源要加电容进行滤除杂波 一般带有功能的引脚是3.3V不要输入5V到这些IO口降压芯…...

远程办公远控软件怎么选?ToDesk、向日葵、UU远程深度对比

远程办公远控软件怎么选&#xff1f;ToDesk、向日葵、UU远程深度对比远程办公这件事&#xff0c;现在很多人已经习惯了。但很多人忽略了一个问题——远程办公体验好不好&#xff0c;很大程度上取决于你用的远控软件怎么样。我之前帮公司选远控工具的时候&#xff0c;认真把市面…...

图片去水印怎样快速搞定?2026年实测去水印工具推荐与方法全解

去水印是许多内容创作者和日常用户都会遇到的需求。无论是保存喜欢的图片、重新编辑素材&#xff0c;还是处理自己的作品&#xff0c;都需要用到高效的去水印方法。本文将为你详细介绍2026年最实用的图片去水印工具和操作方法&#xff0c;帮助你快速找到适合自己的解决方案。 小…...