国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JS逆向分析某枝網(wǎng)的HMAC加密、wasm模塊加密

這篇具有很好參考價值的文章主要介紹了JS逆向分析某枝網(wǎng)的HMAC加密、wasm模塊加密。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

這是我2022年學(xué)做JS逆向成功的例子,URL:(脫敏處理)aHR0cHM6Ly93d3cuZ2R0di5jbi9hdWRpb0NoYW5uZWxEZXRhaWwvOTE=

逆向分析:

1、每次XHR的GET請求攜帶的headers包括:

{
    "X-ITOUCHTV-Ca-Timestamp": "1697608868940",
    "X-ITOUCHTV-Ca-Signature": "hGlre/JKwbHvCWLpO5JQdUHF7nP4HiaA5ya1DenJToA=",
    "X-ITOUCHTV-Ca-Key": "89541443007807288657755311869534",
    "X-ITOUCHTV-CLIENT": "WEB_PC",
    "X-ITOUCHTV-DEVICE-ID": "WEB_1c2f8b90-6bd8-11ee-96e0-5bc8d7091aa8"
}

2、該網(wǎng)站的JS文件采用webpack形式。找出關(guān)鍵的加密邏輯:

this.s = function(t, n, a) {                
    var s = i.default.getUser
      , u = i.default.getJWT
      , c = i.default.getDeviceId
      , d = (new Date).getTime()
      , f = {}
      , p = ""
      , _ = "";
    a && (p = (0,
    r.default)(a),
    _ = l.default.stringify(p));
    var m = "".concat(t, "\n").concat(n, "\n").concat(d, "\n").concat(_);
    return f = {
        "Content-Type": "application/json",
        "X-ITOUCHTV-Ca-Timestamp": d,
        "X-ITOUCHTV-Ca-Signature": l.default.stringify((0,
        o.default)(m, "dfkcY1c3sfuw0Cii9DWjOUO3iQy2hqlDxyvDXd1oVMxwYAJSgeB6phO8eW1dfuwX")),
        "X-ITOUCHTV-Ca-Key": "89541443007807288657755311869534",
        "X-ITOUCHTV-CLIENT": "WEB_PC",
        "X-ITOUCHTV-DEVICE-ID": e.__DEVICEID__ || c()
    },
    u() && (f.Authorization = u()),
    s() && s().pk && (f["X-ITOUCHTV-USER-PK"] = s().pk),
    e.__X_FORWARDED_FOR__ && (f["X-Forwarded-For"] = e.__X_FORWARDED_FOR__),
    f
};

3、初步分析:

(1)X-ITOUCHTV-Ca-Timestamp很明顯是時間戳。

(2)X-ITOUCHTV-Ca-Key這個值是固定的"89541443007807288657755311869534",可以寫死。

(3)"X-ITOUCHTV-CLIENT": "WEB_PC"也是固定寫死的。

(4)X-ITOUCHTV-DEVICE-ID:設(shè)備UUID,隨便擼一串字符串都可以,但該網(wǎng)站要求一定要以 "WEB_"開頭,比如:WEB_9527-3547-709394。

(5)X-ITOUCHTV-Ca-Signature:這是至關(guān)重要的簽名值。

l.default.stringify((0,?o.default)(m, "dfkcY1c3sfuw0Cii9DWjOUO3iQy2hqlDxyvDXd1oVMxwYAJSgeB6phO8eW1dfuwX"))

這一行代碼前面的 l.default 可以不管了,因此理解為:o.default(m, "dfkcY1c3sfuw0Cii9DWjOUO3iQy2hqlDxyvDXd1oVMxwYAJSgeB6phO8eW1dfuwX");

其中長串字符是密鑰,通過 o.default 方法把 m 值和密鑰進(jìn)行加密。

m 是什么?上面幾行已寫清楚了:

var m = "".concat(t, "\n").concat(n, "\n").concat(d, "\n").concat(_);

m 是由 t、n、d、_值串聯(lián)起來的字符。通過斷點(diǎn)跟蹤,可以得知:t 是發(fā)送請求的方式(GET、POST、OPTION之類),n 是URL鏈接,d 是時間戳,至于“_”嘛,是個空字符串,然后每個子字符串以換行符拼接,因此這一行可以簡化成?m = t + '\n' + n + '\n' + d + '\n'。

4、算法分析:

通過斷點(diǎn)跟蹤上面提及的 o.default 方法,o 值來源于“o = a(n(1305))”,是通過WebPack調(diào)取第序列號為1305的方法,可以看到

function(e, _t, n) {
    var r;
    e.exports = (r = n(43),
    n(393),
    n(285),
    r.HmacSHA256)
},

也就是使用HmacSHA256算法加密,然后輸出BASE64字符串。

找一個Python的HmacSHA256的加密代碼嘗試一下:

import hmac
from base64 import b64encode
from hashlib import sha256


key = '。。。。。。'  # HMAC-SHA256加密的密鑰
text = '。。。。。。' # 加密前的明文字符串
signature = str(b64encode(hmac.new(key.encode('utf-8'), text.encode('utf-8'), digestmod=sha256).digest()), 'utf-8')
print(signature)

輸入明文、密鑰,生成的結(jié)果結(jié)果對碰上了,跟開發(fā)者工具里看到的請求頭的X-ITOUCHTV-Ca-Signature一致,幸好該網(wǎng)站沒有魔改加密算法,因此接下來用Python的 hmac 庫和 base64 庫加密代碼就水到渠成了。

2023年10月19日更新:

最近該網(wǎng)站的.js文件作了修改,在所有.js文件里已經(jīng)找不到上述提到的加密邏輯了,而是通過wasm模塊(WebAssembly)進(jìn)行加密,逆向的難度進(jìn)一步增強(qiáng)。

我通過逆向wasm、插樁分析,最后得知wasm只是紙老虎,加密算法依然是HmacSHA256而且沒有被魔改,只是密鑰以及 X-ITOUCHTV-Ca-Key 的值變了。

需要源代碼的朋友歡迎聯(lián)系我(+V:Scott373519)。

參考來源:

Python使用HmacSHA256并用base64加密_sha256+base64-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-721340.html

到了這里,關(guān)于JS逆向分析某枝網(wǎng)的HMAC加密、wasm模塊加密的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • JS逆向?qū)崙?zhàn)16——猿人學(xué)第20題 新年挑戰(zhàn)-wasm進(jìn)階

    JS逆向?qū)崙?zhàn)16——猿人學(xué)第20題 新年挑戰(zhàn)-wasm進(jìn)階

    本文章中所有內(nèi)容僅供學(xué)習(xí)交流,抓包內(nèi)容、敏感網(wǎng)址、數(shù)據(jù)接口均已做脫敏處理,嚴(yán)禁用于商業(yè)用途和非法用途,否則由此產(chǎn)生的一切后果均與作者無關(guān),若有侵權(quán),請聯(lián)系我立即刪除! https://match.yuanrenxue.cn/match/20 首先進(jìn)去網(wǎng)站,我們查看下接口 發(fā)現(xiàn)有兩個值是改變的

    2024年02月08日
    瀏覽(86)
  • 安全開發(fā)-JS應(yīng)用&原生開發(fā)&JQuery庫&Ajax技術(shù)&加密編碼庫&斷點(diǎn)調(diào)試&逆向分析&元素屬性操作

    安全開發(fā)-JS應(yīng)用&原生開發(fā)&JQuery庫&Ajax技術(shù)&加密編碼庫&斷點(diǎn)調(diào)試&逆向分析&元素屬性操作

    1、布置前端頁面 2、JS獲取提交數(shù)據(jù) 3、JS對上傳格式判斷 4、后端對上傳數(shù)據(jù)處理 前端JS進(jìn)行后綴過濾,后端PHP進(jìn)行上傳處理 架構(gòu):html js php - upload.php 安全問題: 1、過濾代碼能看到分析繞過 2、禁用JS或刪除過濾代碼繞過 前端白名單很輕易就能繞過 0、布置前端頁面 1、獲取

    2024年02月12日
    瀏覽(29)
  • 文章同步--飛鶴官方商城加密逆向分析(小程序)、蟬管家滑塊加密參數(shù)逆向分析

    飛鶴官方商城加密逆向分析(小程序) ? ? ? 蟬管家滑塊加密參數(shù)逆向分析 ? ? ?

    2024年02月12日
    瀏覽(32)
  • 【JS逆向一】逆向某站的 加密參數(shù)算法--僅供學(xué)習(xí)參考

    【JS逆向一】逆向某站的 加密參數(shù)算法--僅供學(xué)習(xí)參考

    逆向日期:2024.02.06 使用工具:Node.js 文章全程已做去敏處理?。?!? 【需要做的可聯(lián)系我】 可使用AES進(jìn)行解密處理(直接解密即可):在線AES加解密工具 1、打開某某網(wǎng)站(請使用文章開頭的AES在線工具解密):T9mpG48zIdYFB40hkjsQS4+N5rr4x4mSPHlx5EoT/+s= 2、點(diǎn)擊右上角的登錄按鈕,賬號

    2024年02月22日
    瀏覽(21)
  • 爬蟲+RPC+js逆向---直接獲取加密值

    爬蟲+RPC+js逆向---直接獲取加密值

    免責(zé)聲明:本文僅做技術(shù)交流與學(xué)習(xí),請勿用于其它違法行為;如果造成不便,請及時聯(lián)系... 目錄 爬蟲+RPC+js逆向---直接獲取加密值 target網(wǎng)址: 抓包 下斷點(diǎn) 找到加密函數(shù) 分析參數(shù) RPC流程 一坨: 二坨: 運(yùn)行py,拿到加密值 優(yōu)志愿_2024高考志愿填報系統(tǒng)-新高考志愿填報選科指南 數(shù)據(jù)往

    2024年04月14日
    瀏覽(33)
  • 某網(wǎng)站DES加密逆向分析實戰(zhàn)

    某網(wǎng)站DES加密逆向分析實戰(zhàn)

    分析站點(diǎn) : aHR0cDovL2VpcC5jaGFuZmluZS5jb20v 首先我們提交一下登陸信息: 搜索 j_password 查看加密函數(shù): 把上圖搜索到的 encryptPassword 函數(shù)拿出來分析一下:

    2024年02月11日
    瀏覽(19)
  • 某后臺管理系統(tǒng)加密參數(shù)逆向分析

    在我們?nèi)粘5臐B透中經(jīng)常會遇到開局一個登錄框的情況,弱口令爆破當(dāng)然是我們的首選。但是有的網(wǎng)站會對賬號密碼等登錄信息進(jìn)行加密處理,這一步不由得阻礙了很多人的腳步。前端的加解密是比較常見的,無論是 web 后臺還是小程序,都常常存在加解密傳輸,簽名防篡改

    2024年02月04日
    瀏覽(18)
  • JS逆向?qū)崙?zhàn)案例2——某房地產(chǎn)token RSA加密

    JS逆向?qū)崙?zhàn)案例2——某房地產(chǎn)token RSA加密

    說明:僅供學(xué)習(xí)使用,請勿用于非法用途,若有侵權(quán),請聯(lián)系博主刪除 作者:zhu6201976 url1:aHR0cDovL3pmY2ouZ3ouZ292LmNuL3pmY2ovZnl4eC94a2I/c1Byb2plY3RJZD05MzBlMDQ0MmJjNjA0MTBkYTgzNzQ0MmQ5ZGRiN2UwMiZzUHJlU2VsbE5vPTIwMjQwMDA1 url2:aHR0cDovL3pmY2ouZ3ouZ292LmNuL3pmY2ovZnl4eC94bXhrYnh4Vmlldw== 瀏覽器訪問url1得到銷控表(樓棟

    2024年01月18日
    瀏覽(32)
  • JS逆向?qū)崙?zhàn)13——某市公共資源交易中心Cookie混淆加密

    JS逆向?qū)崙?zhàn)13——某市公共資源交易中心Cookie混淆加密

    \\\"本文地址:https://www.cnblogs.com/zichliang/p/17346860.html 本文章中所有內(nèi)容僅供學(xué)習(xí)交流,抓包內(nèi)容、敏感網(wǎng)址、數(shù)據(jù)接口均已做脫敏處理,嚴(yán)禁用于商業(yè)用途和非法用途,否則由此產(chǎn)生的一切后果均與作者無關(guān),若有侵權(quán),請聯(lián)系我立即刪除! 網(wǎng)站: aHR0cDovL2xkZ2d6eS5obmxvdWRpLmdvdi

    2023年04月24日
    瀏覽(21)
  • js逆向·找到登錄時目標(biāo)網(wǎng)站的加密算法的幾種方式

    js逆向·找到登錄時目標(biāo)網(wǎng)站的加密算法的幾種方式

    為什么要去找到目標(biāo)網(wǎng)站的加密密碼方法: 為了要把我們的payload正確的帶入目標(biāo)網(wǎng)站的服務(wù)器進(jìn)行邏輯驗證,那么就需要知道對方使用的什么加密或者編碼規(guī)則來處理數(shù)據(jù)的,比如說我們輸入的密碼被base64編碼了,然后發(fā)送給后端,后端會進(jìn)行解碼過后再帶入邏輯驗證中去

    2024年02月08日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包