如何進行電子錢包APP漏洞分析
雷蛇支付(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-4xxf-bxx7-4xxf 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)
##return ret_value;<code>
}<code>
#})<code>
<br>
$ adb shell
# sudo su
# /data/local/tmp/frida-server
$ frida -l frida.js -U com.mol.molwallet
以上是如何進行電子錢包APP漏洞分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

京東商城APP實名認證怎麼搞?京東商城是許多朋友常用的網路購物平台,大家在購物前,最好先進行實名認證,這樣才能享受到完整的服務,獲得更好的購物體驗。以下帶來京東商城實名認證方法,希望對網友們有幫助。 1.安裝並開啟京東商城,接著登入個人帳號;2、然後點選頁面下方【我的】,進入個人中心頁面;3、之後再點選右上角的【設定】小圖標,前往設定功能介面;4、選擇【帳號與安全】這一項,來到帳戶設定頁面;5、最後再點擊【實名認證】選項,前往填寫實名資訊;6、安裝系統要求填寫個人真實信息,完成實名認證

還是以大神apk為例,透過前面分析app解密lua腳本,我們能夠解密大神apk的lua腳本,現在我們來解密其資源(設定檔和圖片等)。我們以比較重要的設定檔為例,未解密之前:檔案頭也有簽名值:fuckyou!。看到這,我們首先就想到是不是也是用xxtea加密的,我們用上面的方法,先xxtea解密,再解壓,發現依舊是亂碼,在操作的過程中就出現了錯誤,顯然,要否定我們剛才的猜想。我們繼續按部就班的解密設定檔。稍微思考一下,文件頭部是:fuckyou!如果想要對文件進行解密,那麼不可避免的需要處理

微軟在今年稍早推出了Windows11安全功能SmartAppControl。當時,微軟將其描述為「阻止不受信任或具有潛在危險的應用程式」的保護工具。當時該工具的獨特之處在於它決定了它是否應該在Windows11設備上運行。 SmartAppControl一開始以評估模式運作;正是在這種模式下,應用程式決定是否應該開啟它。微軟確實透露用戶可以在Windows安全應用程式的應用程式和瀏覽器控制部分啟用智慧應用程式控制。僅根據Microsoft的說法,SmartAppC

AppStore是iOS相關應用程式的市場。在這裡,您還可以找到免費應用程式和付費應用程式。應用程式可以是遊戲應用程式、提高工作效率的應用程式、實用應用程式、社交媒體應用程式以及更多類別的應用程式。您可能已經從AppStore下載或購買了許多適用於iPhone的應用程式。現在您可能想知道如何查看在App Store中購買的應用程式的購買記錄。有時,出於隱私原因,您可能需要從購買歷史記錄中隱藏某些購買。在本文中,我們將指導您尋找購買歷史記錄以及如何根據需要從購買歷史記錄中刪除/隱藏購買。第1部

在全球範圍內,Apple公司的產品和服務一直備受用戶喜愛。註冊一個香港AppleID將帶給用戶更多的便利和特權,讓我們一起來了解一下註冊香港AppleID的步驟以及需要注意的事項。如何註冊香港AppleID在使用蘋果設備時,許多應用程式和功能都需要使用AppleID進行登入。如果您想下載香港地區的應用程式或享受香港AppStore的優惠內容,那麼註冊一個香港AppleID就非常必要。本文將詳細介紹如何註冊香港AppleID的步驟以及需要注意的事項。步驟:選擇語言與地區:在蘋果設備上找到「設定」選項,進入

中國聯通app能夠輕鬆的滿足大家的使用,多樣的功能,解決你們的需求,想要辦理各種業務,都可以在這裡輕鬆的搞定,有不需要的都可以在這裡及時的退訂掉,有效的避免後續的損失,很多人在使用手機時,有時感覺流量不夠用,就購買了額外的流量包,但下個月又不想要要,就想要馬上的退訂掉,在這裡小編為大家提供退訂的方法,讓需要的朋友們,都可以來使用起來! 在中國聯通app中,找到右下角的「我的」選項,點擊它。 在我的介面裡,滑動我的服務一欄,點擊其中的「我已訂購」選

app全名為“Application”,即應用程式的縮寫,是指針對行動裝置開發的一種軟體應用。 app的出現為使用者提供了更多種類的行動應用程式選擇,滿足了使用者在不同場景下的各類需求。 app的開發過程涉及軟體設計、程式設計、測試等多個環節,同時也需要考慮設備相容性、效能最佳化、安全性等方面的問題。

發票作為購物憑證,對於我們的日常生活和工作都至關重要。那麼我們平常在使用多點app進行購物的時候,如何在多點app中輕鬆開立發票呢?下文中本站小編將為大家帶來詳細的多點app開立發票詳細操作步驟攻略,想要了解的用戶們千萬不容錯過,快來跟著文本一起操作了解一下吧!在【發票中心】點選【多點超市/自由購】在已完成的訂單頁中選擇需要開立發票的訂單,點選下一步填寫【發票資訊】,【收件者資訊】,確認無誤後點選提交過個幾分鐘後,進入收件信箱,打開郵件,點選電子發票下載地址最後,下載列印電子發票
