雷蛇支付(Razer Pay)在新加坡和马来西亚被广泛使用,在该篇Writeup中,作者通过APP逆向分析,利用Frida调试,发现了雷蛇支付电子钱包(Razer Pay Ewallet)中的用户签名(Signature)生成漏洞,由此可读取雷蛇支付用户的聊天记录、删除用户绑定的银行账户并窃取用户个人敏感信息,漏洞最终获得了雷蛇官方将近$6,000的奖励。以下是作者的漏洞发现思路,仅当姿势学习借鉴。
漏洞背景
雷蛇(Razer Inc,RΛZΞR)是一家在新加坡创立的游戏周边设备公司,又被称为“绿光灯厂”,近年开始进军电子消费业务。雷蛇的两个总部分别设立在新加坡及美国圣地牙哥。2017年11月在香港联交所上市,产品面向游戏玩家,其产品大多数都以肉食动物命名。2018年推出电子钱包Razer Pay。2020年5月,开始生产外科口罩。
在雷蛇支付电子钱包(Razer Pay Ewallet)的请求防篡改机制中,除auth_token之外,还使用了参数signature对不同用户的请求进行签名验证,每一个对服务端的GET和POST请求都会附带一个经过编码的signature参数值和用户id,如下图所示:
因此,试图对任意请求参数的篡改重发都会无效,但经APK逆向分析发现,雷蛇支付电子钱包(Razer Pay Ewallet)存在用户签名(Signature)生成漏洞,结合Frida的分析利用可自动计算生成新的用户签名(Signature),由此可导致很多的越权(IDOR)问题。
我在使用Burp对雷蛇支付APP的网络请求进行抓包时发现,由于请求中用户签名(Signature)的保护,所以其中很多参数都是无法篡改的,因此,我第一时间想到了注册另外一个雷蛇支付用户来进行配合测试,但在两个用户的同一请求的场景下,经会话Payload的替换操作后,执行无效,原因还是出在有用户签名(Signature)的会话请求保护。
我决定切实分析一下用户签名(Signature)的生成机制,在apktool 和 Jadx-Gui 的反编译帮助下,我对其APP的运行有了代码层次的理解,发现其中存在一个名为“MD5Encode”的方法函数,从名字上就知道是用了MD5加密算法。经过一些参数Payload的组合,我决定尝试一下生成用户签名(Signature),但怎么试也无法生成正确的用户签名,我猜想可能是参数次序错误,或它是一种非常规的MD5加密。
删除其他用户的绑定银行账户
不抛弃不放弃,我把其中涉及用户签名生成的所有相关代码拷贝出来,然后用IDE调试工具IntelliJ IDEA进行尝试生成,终于,在“MD5Encode”方法运用中,我组合对了正确的参数次序,不过由于有代码混淆,还需要做一些微调,但还算不太难。最终,在之前生成的请求主体中,插入正确的参数值,用上述代码即能生成正确的用户签名(Signature)字符串!
(小编分析,在以下多个用户签名的生成过程中,用到了用户自己的token,其为参数之一,然后经MD5Encode方法,可以生成与多个用户id对应的不同用户签名,也就是可以成功生成雷蛇服务端分配给多个用户的各个用户签名Signature)
由此,我首先想到的就是测试越权漏洞(IDOR),我选择了一个比较敏感的API接口/deleteBankAccount,也就是删除用户绑定的银行账户操作,然后在两个账户的测试场景下,竟然能成功删除掉另一雷蛇支付(Razer Pay)用户的绑定银行账户!
加入其他用户创建的聊天群组
到这步,我想肯定还有其它受Signature保护的API接口存在IDOR越权问题,于是我尝试用上述方法去做了一波测试,但毫无发现。而且其它API接口使用了不同代码混淆方法,导致我花费了很多时间去研究分析。没有头绪之时,那就用Frida来试试吧,Frida是一个非常好用的调试工具,我正好可以用它来识别一些可以hook利用的方法函数,结合上述的MD5Encode方法,找到正确的电子钱包代码包,同样可以用这些方法函数生成新的正确的用户签名Signature。
如以下frida.js代码实现的功能是为当前用户生成的新的用户签名,以加入其他用户创建的聊天群组:
<br>
<code>// frida.js - Use this for recalculating signature for adding user to other people's chatgroup
<code>console.log("Starting...")
<code>Java.perform(function () {
<code>var MD5 = Java.use('com.mol.molwallet.view.MD5')
<code>MD5.MD5Encode.implementation = function (arg)
<code>{
<code>console.log("Hooking class MD5 - method MD5Encode")
<code>//Extra step - calculate new signature
<code>var ret_value = this.MD5Encode("groupId=1x9&userIds=95xxx7&token=b6fxxxd3-2xxc-4xxf-bxx7-7fxxxxa6")
<code>console.log("[+] signature= " + ret_value)
<code>//Call method with original arguments so app doesn't crash ..
<code>var ret_value = this.MD5Encode(arg) //original value
<code>console.log("original ARG: " + arg)
<code>return ret_value;
<code>}
<code>})
但是要运行Frida,需要root级别的访问,好在我另外发现了一个服务端漏洞可以让攻击者在一台root过的移动设备中执行操作,以下为在移动设备中启动Frida服务的命令:
<br>
$ adb shell
# sudo su
# /data/local/tmp/frida-server
之后,在另一个终端窗口下,运行以下命令:
$ frida -l frida.js -U com.mol.molwallet
然后,在移动设备中,我打开雷蛇支付APP,这其中任何调用到hook方法“MD5Encode”的操作都将会执行上述的frida.js脚本,最终我就能针对特定用户请求生成有效正确的用户签名Signature了,这里的测试用例是,我可以为我自己生成一个用户签名,以它为验证凭据加入其他用户创建的聊天群组中去,这种方式的危害之处在于,可以神不知鬼不觉地加入某个群组,然后获取别人的聊天内容,或点击领取抢掉别人发送的红包。
导致的其它安全问题
利用上述方法,我把其它受Signature影响的所有API接口都做了测试,发现可以从这些API接口获取用户群组聊天时分享的红包金额,另外还能修改并查看其他用户的转账记录和个人信息。
以上是如何进行电子钱包APP漏洞分析的详细内容。更多信息请关注PHP中文网其他相关文章!

类似小红书的app有:1、绿洲,是一款新浪微博出品的移动端时尚社交应用软件;2、杂志迷,是一款手机各类杂志供大家阅读的APP;3、美丽修行,是一款提供护肤解决方案及化妆品购买决策的产品;4、凹凹啦,是一款手机化妆品点评软件,为用户提供最实用、最新鲜、最全方位的护肤、化妆点评和分享信息;5、抹茶美妆,一款实用的化妆品交流社区;6、美丽说,一款以分享为主题的趣味社交平台。

微软于今年早些时候推出了Windows11安全功能SmartAppControl。当时,微软将其描述为“阻止不受信任或具有潜在危险的应用程序”的保护工具。当时该工具的独特之处在于它决定了它是否应该在Windows11设备上运行。SmartAppControl一开始以评估模式运行;正是在这种模式下,应用程序决定是否应该打开它。微软确实透露用户可以在Windows安全应用程序的应用和浏览器控制部分启用智能应用控制。仅根据Microsoft的说法,SmartAppC

橙色软件指的是“淘宝”。淘宝是随时随地轻松购物app,为用户提供新的购物渠道,享受更多优惠活动,让用户不用出门就可以享受优惠购物平台,方便买卖家之间的沟通,购物更加方便。淘宝能满足人们生活中的各种需求:搜索和浏览商品、加入购物车、下单支付、物流查询、客服交流、发表购物评论、分享优质商品等等,还能通过本地功能,找到附近的生活优惠信息。

苏州地铁用“苏e行”app扫码进站。苏e行app ,提供苏州地铁扫码乘车服务,先乘车,后付款,结合苏州城市文化及地铁出行场景,围绕“地铁大脑”构建公共交通智慧出行,利用 LBS 、物联网、大数据、人工智能等先进技术为乘客提供扫码过闸、乘车服务、附近地铁商业、同时为苏州本地商家提供用户引流、活动推广等服务,构建互联网化的苏州城市生活服务。

防诈骗的app叫“国家反诈中心”,是一款帮助用户预警诈骗信息、快速举报诈骗内容、提升防范意识的反电信诈骗应用。它的“反诈预警、身份验证、App自查、风险预警”等核心功能可以最大限度减少民众被骗的可能性;可以对那些诈骗电话或信息快速向平台举报,帮助他人减少遇到类似的情况;能够帮助用户随时监控各种恶意软件,让各种骗局无路可走,给每个用户带来一个非常安全的生活环境。

AppStore是iOS相关应用程序的市场。在这里,您还可以找到免费应用程序和付费应用程序。应用程序可以是游戏应用程序、提高工作效率的应用程序、实用应用程序、社交媒体应用程序以及更多类别的应用程序。您可能已经从AppStore下载或购买了许多适用于iPhone的应用程序。现在您可能想知道如何查看在App Store中购买的应用程序的购买历史记录。有时,出于隐私原因,您可能需要从购买历史记录中隐藏某些购买。在本文中,我们将指导您查找购买历史记录以及如何根据需要从购买历史记录中删除/隐藏购买。第1部

tiktok是抖音短视频国际版,是字节跳动旗下短视频社交app软件,于2017年5月上线,愿景是“激发创造,带来愉悦”。用户可以通过这款软件选择歌曲,拍摄音乐短视频,形成自己的作品,会根据用户的爱好,来更新用户喜爱的视频。

猴山指的是“AcFun”,是一个视频播放软件。AcFun以视频为载体,逐步发展出基于原生内容二次创作的完整生态,是中国弹幕文化的发源地。AcFun以“认真你就输了”为文化导向,倡导轻松欢快的亚文化,受广大二次元用户的深度喜爱,入驻超多原创视频的作者,覆盖面超广阔。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

Atom编辑器mac版下载
最流行的的开源编辑器

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver Mac版
视觉化网页开发工具