91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行電子錢包APP漏洞分析

發布時間:2022-01-18 16:04:34 來源:億速云 閱讀:178 作者:柒染 欄目:安全技術

這篇文章的內容主要圍繞如何進行電子錢包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,如下圖所示:

如何進行電子錢包APP漏洞分析

因此,試圖對任意請求參數的篡改重發都會無效,但經APK逆向分析發現,雷蛇支付電子錢包(Razer Pay Ewallet)存在用戶簽名(Signature)生成漏洞,結合Frida的分析利用可自動計算生成新的用戶簽名(Signature),由此可導致很多的越權(IDOR)問題。

我在使用Burp對雷蛇支付APP的網絡請求進行抓包時發現,由于請求中用戶簽名(Signature)的保護,所以其中很多參數都是無法篡改的,因此,我第一時間想到了注冊另外一個雷蛇支付用戶來進行配合測試,但在兩個用戶的同一請求的場景下,經會話Payload的替換操作后,執行無效,原因還是出在有用戶簽名(Signature)的會話請求保護。

我決定切實分析一下用戶簽名(Signature)的生成機制,在apktool 和 Jadx-Gui 的反編譯幫助下,我對其APP的運行有了代碼層次的理解,發現其中存在一個名為“MD5Encode”的方法函數,從名字上就知道是用了MD5加密算法。經過一些參數Payload的組合,我決定嘗試一下生成用戶簽名(Signature),但怎么試也無法生成正確的用戶簽名,我猜想可能是參數次序錯誤,或它是一種非常規的MD5加密。

如何進行電子錢包APP漏洞分析

刪除其他用戶的綁定銀行賬戶

不拋棄不放棄,我把其中涉及用戶簽名生成的所有相關代碼拷貝出來,然后用IDE調試工具IntelliJ IDEA進行嘗試生成,終于,在“MD5Encode”方法運用中,我組合對了正確的參數次序,不過由于有代碼混淆,還需要做一些微調,但還算不太難。最終,在之前生成的請求主體中,插入正確的參數值,用上述代碼即能生成正確的用戶簽名(Signature)字符串!

(小編分析,在以下多個用戶簽名的生成過程中,用到了用戶自己的token,其為參數之一,然后經MD5Encode方法,可以生成與多個用戶id對應的不同用戶簽名,也就是可以成功生成雷蛇服務端分配給多個用戶的各個用戶簽名Signature)

如何進行電子錢包APP漏洞分析

如何進行電子錢包APP漏洞分析

由此,我首先想到的就是測試越權漏洞(IDOR),我選擇了一個比較敏感的API接口/deleteBankAccount,也就是刪除用戶綁定的銀行賬戶操作,然后在兩個賬戶的測試場景下,竟然能成功刪除掉另一雷蛇支付(Razer Pay)用戶的綁定銀行賬戶!

如何進行電子錢包APP漏洞分析

加入其他用戶創建的聊天群組

到這步,我想肯定還有其它受Signature保護的API接口存在IDOR越權問題,于是我嘗試用上述方法去做了一波測試,但毫無發現。而且其它API接口使用了不同代碼混淆方法,導致我花費了很多時間去研究分析。沒有頭緒之時,那就用Frida來試試吧,Frida是一個非常好用的調試工具,我正好可以用它來識別一些可以hook利用的方法函數,結合上述的MD5Encode方法,找到正確的電子錢包代碼包,同樣可以用這些方法函數生成新的正確的用戶簽名Signature。

如以下frida.js代碼實現的功能是為當前用戶生成的新的用戶簽名,以加入其他用戶創建的聊天群組:


// frida.js - Use this for recalculating signature for adding user to other people's chatgroup

console.log("Starting...")

Java.perform(function () {

var MD5 = Java.use('com.mol.molwallet.view.MD5')

MD5.MD5Encode.implementation = function (arg)

{

console.log("Hooking class MD5 - method MD5Encode")

//Extra step - calculate new signature

var ret_value = this.MD5Encode("groupId=1x9&userIds=95xxx7&token=b6fxxxd3-2xxc-4xxf-bxx7-7fxxxxa6")

console.log("[+]  signature= " + ret_value)

//Call method with original arguments so app doesn't crash ..

var ret_value = this.MD5Encode(arg) //original value

console.log("original ARG: " + arg) 

return ret_value;

}

})

但是要運行Frida,需要root級別的訪問,好在我另外發現了一個服務端漏洞可以讓攻擊者在一臺root過的移動設備中執行操作,以下為在移動設備中啟動Frida服務的命令:


$ adb shell

# sudo su

# /data/local/tmp/frida-server

之后,在另一個終端窗口下,運行以下命令:

$ frida -l frida.js -U com.mol.molwallet

然后,在移動設備中,我打開雷蛇支付APP,這其中任何調用到hook方法“MD5Encode”的操作都將會執行上述的frida.js腳本,最終我就能針對特定用戶請求生成有效正確的用戶簽名Signature了,這里的測試用例是,我可以為我自己生成一個用戶簽名,以它為驗證憑據加入其他用戶創建的聊天群組中去,這種方式的危害之處在于,可以神不知鬼不覺地加入某個群組,然后獲取別人的聊天內容,或點擊領取搶掉別人發送的紅包。

如何進行電子錢包APP漏洞分析

如何進行電子錢包APP漏洞分析

導致的其它安全問題

利用上述方法,我把其它受Signature影響的所有API接口都做了測試,發現可以從這些API接口獲取用戶群組聊天時分享的紅包金額,另外還能修改并查看其他用戶的轉賬記錄和個人信息。

感謝你的閱讀,相信你對“如何進行電子錢包APP漏洞分析”這一問題有一定的了解,快去動手實踐吧,如果想了解更多相關知識點,可以關注億速云網站!小編會繼續為大家帶來更好的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

app
AI

双鸭山市| 龙游县| 普洱| 南昌市| 固阳县| 崇文区| 黄龙县| 恩平市| 洪洞县| 昂仁县| 德安县| 石渠县| 建平县| 黎川县| 洞口县| 乃东县| 姚安县| 宁陕县| 称多县| 河东区| 香河县| 兰西县| 平潭县| 平阳县| 黑河市| 黑山县| 永济市| 阿荣旗| 伊宁县| 平舆县| 浮山县| 韶关市| 新绛县| 淮阳县| 沂水县| 新晃| 南丰县| 庄河市| 孟津县| 安多县| 柳林县|