<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    微信小程序的任意用戶登錄實戰

    VSole2023-02-13 10:43:39

    NO.1

     小程序開放數據獲取基本流程

        小程序可以通過各種前端接口獲取微信提供的開放數據。考慮到開發者服務端也需要獲取這些開放數據,微信提供了兩種獲取方式:

    · 方式一:開發者后臺校驗與解密開放數據

    · 方式二:云調用直接獲取開放數據(云開發)

    本文簡單分享一下開發者后臺校驗與解密開放數據部分的漏洞形成與案例。

    為了保證數據安全,微信會對用戶數據進行加密傳輸處理,所以小程序在獲取微信側提供的用戶數據(如手機號)時,就需要進行相應的解密,這就會涉及到session_key。

    NO.2

     漏洞形成

    1、開發者后臺校驗與解密開放數據

    小程序授權時若通過微信處獲取用戶信息,則需要調用接口獲取登錄憑證(code)。通過憑證獲取用戶登錄信息,即用戶對當前小程序的唯一標識(openid)、用戶對小程序主體的唯一標識(unionid)、用戶本次登錄的會話密鑰(session_key)等信息。

    代碼及數據包信息如下:


    授權后小程序可獲取用戶信息,微信對用戶信息做AES加密處理,即利用session_key、iv對用戶數據進行加密,生成加密參數encryptedData。其中,session_key指的是會話密鑰,可以簡單理解為微信開放數據AES加密的密鑰,它是微信服務器給開發者服務器頒發的身份憑證,這個數據正常來說是不能通過任何方式泄露出去的。小程序若存在session_key泄露漏洞的情況,則代表微信側傳遞的用戶數據有被泄露、篡改等風險。

    數據包信息如下:

     2、數據加解密算法

    涉及用戶敏感數據的加密參數encryptedData,需iv及session_key通過AES解密,具體加解密算法如下:

    1. 對稱解密使用的算法為 AES-128-CBC,數據采用PKCS#7填充。

    2. 對稱解密的目標密文為 Base64_Decode(encryptedData)。

    3. 對稱解密秘鑰 aeskey = Base64_Decode(session_key), aeskey 是16字節。

    4. 對稱解密算法初始向量 為Base64_Decode(iv),其中 iv 由數據接口返回。

    3、漏洞成因

    當用戶存在session_key泄露,可對當前用戶的encryptedData進行解密,并修改用戶登錄信息,例如手機號等。修改為其他用戶信息后,對新信息進行加密并重放,可實現任意用戶登錄。其中,session_key可能泄露的具體如下:

    1. Code2Session接口https://XXX/ /OnLogin?code=0031VH0w300XXX

    wx.login 接口獲得臨時登錄憑證code后傳到開發者服務器,生成session_key

    2. 在解密開放數據時, 將服務端中的session_key傳送至小程序前端,直接在前端進行解密,泄露session_key

    NO.3

     漏洞案例

    發現當用戶在授權小程序登錄時,存在sessionKey泄露,導致該小程序可以使用任意手機號進行綁定登錄,造成任意用戶登錄漏洞。數據包關鍵信息如下:

    綁定手機號中關鍵參數為encryptedData、iv、sessionKey。其中encryptedData為綁定用戶的手機號、appid等信息;iv為偏移量;sessionkey為會話密鑰,是微信開放數據AES加密的密鑰,它是微信服務器給開發者服務器頒發的身份憑證,這個數據正常來說是不能通過任何方式泄露出去的。當小程序session_key泄露,則微信側傳遞的用戶信息可篡改。

    對小程序進行任意用戶登錄,測試流程如下:

    1.手機綁定處數據包信息如下:

    2.利用iv及sessionKey對encryptedData進行解密,其中iv和sessionkey均為base64加密,但正常解密后上述兩參數為字節碼,無法正常對encryptedData參數進行解密,利用腳本解密結果如下:

    3.修改參數phoneNumber為其他賬號,再進行加密,并用該結果替換數據包中encryptedData結果如下:

          4.利用小程序接口、userId及token訪問用戶信息,如下:當前登錄用戶手機號為13888888888,任意用戶登錄成功。

    NO.4

     修復建議

    請盡快在網絡請求中,去除請求和響應中的session_key字段及其對應值,后續也不應該將session_key傳到小程序客戶端等服務器外的環境,以便消除風險。

    微信小程序用戶獲取
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    強化網絡平臺等大型在線企業的治理,配置與其控制力和影響力相適應的個人信息保護特別義務,正在形成全球普遍共識。我國目前制定個人信息保護法,適應這一趨勢正當其時,對此等企業的個人信息保護義務作出特別規定。本文建議在我國正在制定的個人信息保護法中增加一個條文,設置“守門人”在個人信息保護方面的特別義務。增設這一特別義務,在立法例上有可供參考的經驗,并具有技術上的可行性和經濟上的合理性。本文對此作出論證,
    程序若存在session_key泄露漏洞的情況,則代表側傳遞的用戶數據有被泄露、篡改等風險。漏洞案例 發現當用戶在授權程序登錄時,存在sessionKey泄露,導致該程序可以使用任意手機號進行綁定登錄,造成任意用戶登錄漏洞。
    淺談程序滲透
    2023-03-16 10:01:18
    0x0前言最近好多小伙伴都在問怎么對程序進行滲透,遂寫篇文章拋磚引玉。我使用的是夜神模擬器配合 burpsuite 進行抓包。我們在模擬器里登錄,然后隨便選擇一個程序打開????舉例某程序審計,在登錄界面爆破無關之后,直接反編譯拖源碼審計一下,反編譯出來的源碼,我們著重看 js 文件及其配置文件即可。成功獲取系統管理員詳細信息,其中包括關鍵的密碼。這類常常出現未授權漏洞的路由命名方式大抵都是xxxByXXXId
    記一次程序滲透實戰記錄
    數字化時代,傳統快企業紛紛向線上轉型升級,大量業務基于APP、程序、H5 、等渠道接入,直接面向消費者展開花樣百出的線上營銷活動,如:掃碼領紅包、集卡送好禮、分享得立減金…… 然而,在快行業一片欣欣向榮的背后,黑產分子早已伺機出動,沉浸在各大品牌的羊毛雨中樂此不疲。數據顯示,如果企業在營銷時不做風險控制,黑產比例一般在20%以上,甚至有一些高達50%,各個品牌被黑產薅掉的營銷費用非常高
    淺談攻防演練
    2022-04-26 14:21:18
    國家級攻防演練從2016年開始,已經走過了6個年頭,它是由公安部組織的,這個網絡安全攻防演練集結了國家頂級的攻防力量,以不限制手段、路徑,進行獲取權限并攻陷指定靶機為目的實戰攻防演練。 通過真實網絡中的攻防演練,可以全面評估目標所在網絡的整體安全防護能力,檢驗防守方安全監測、防護和應急響應機制及措施的有效性,鍛煉應急響應隊伍提升安全事件處置的能力。 攻防演練主要目標涵蓋國家重要行業的關鍵信息基
    2021年6月10日,《中華人民共和國數據安全法》正式頒布。數據是國家基礎性戰略資源,也是各金融企業的重要資源和核心競爭力。從數據泄露的途徑分析,數據泄露主要分為三種:竊密,泄密和失密。在金融機構對于數據的安全越來越重視,竊密已經可以通過安全系統來做到很高等級的防護了。
    2020年,全球突發新冠肺炎疫情,抗擊疫情成為各國的緊迫任務。不論是在疫情防控相關領域,還是在遠程辦公、教育、醫療及智能化生產等生產生活領域,大量新型互聯網產品和服務應運而生,在助力疫情防控的同時進一步推進社會數字化轉型。與此同時,安全漏洞、數據泄露、電信網絡詐騙、勒索病毒等網絡安全威脅日益凸顯,有組織、有目的的網絡攻擊數量增多,給網絡安全防護工作帶來更多挑戰。
    你也可以直接用burp+windows版,進行抓包,如果出現網絡錯誤,直接用Fiddler抓包然后發給burp進行測試。選擇最右側的操作按鈕,選擇將根證書導出到桌面。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类