JS逆向加密筆記

前言:

  1. 日常js學(xué)習(xí)逆向筆記历帚,會不斷更新
  2. 主頁有練習(xí)js逆向的記錄,大家可以一起學(xué)習(xí)
  3. 如果哪有不清楚的屯换,可以留言编丘,我去完善与学,一起努力
  4. 如果哪有寫錯的提醒一下小弟,十分感謝

對自己的提醒:

  1. 不要只關(guān)注結(jié)果嘉抓,也要查看加密的過程

目錄:

一索守、AES加密
二、DES加密
三抑片、RSA代碼
四卵佛、SHA加密
五、混淆js
六敞斋、無限debugger
七截汪,cookie
八、中間人攻擊渺尘,js注入
九稿静、hook

END嘱能、零散筆記

一、AES加密

  1. iv偏移量和密碼
    注意: 不可直接轉(zhuǎn)換成字符串加入到加密過程中
    應(yīng)當用以下方法進行轉(zhuǎn)換
 CryptoJS.enc.Utf8.parse("值")

js完整代碼

var CryptoJS = require('./2.5.3-crypto-min.js');
l = {
    // 密匙
    key: CryptoJS.enc.Utf8.parse("fX@VyCQVvpdj8RCa"),
    //偏移量
    iv: CryptoJS.enc.Utf8.parse(function (t) {
        for (var e = "", i = 0; i < t.length - 1; i += 2) {
            var r = parseInt(t[i] + "" + t[i + 1], 16);
            e += String.fromCharCode(r)
        }
        return e
    }("00000000000000000000000000000000"))
}
    , h = function (data) {
    return function (data) {
        return CryptoJS.AES.encrypt(data, l.key, {
            iv:l.iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        }).toString()
    }(data)
}
// 加密調(diào)用
console.log(h("83fcb26aa3114f8ea29f7d66ce747955"))

二、DES加密

和AES大致相同昧识,借用CryptoJS直接調(diào)用

var CryptoJS = require("./2.5.3-crypto-min")
function result(t, e) {
    var a = CryptoJS.enc.Utf8.parse(e);
    try {
        var s = CryptoJS.DES.encrypt(String(t), a, {
            mode: CryptoJS.mode.ECB,
            padding: CryptoJS.pad.Pkcs7
        })
    } catch (t) {
        console.log(t)
    }
    return s.toString()
}

三、RSA代碼

必須加上-----BEGIN PUBLIC KEY-----\n內(nèi)容\n-----END PUBLIC KEY-----
切記有\(zhòng)n

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCFNYuYB/HVQtDxdYTWg/qcL1YcP3n/1myBRvcYiRSXo6t07KhZvR+78RWVmlKOfLlK+86zgTuniQBsMANe/o2kyUie+MFuo/5VTaXpHVkZce0Hl/5cVN9nIZRDvjXir+yCQjO5fzAi2dagDWsMD3AtONKSrotTr92lJa28A35fewIDAQAB
-----END PUBLIC KEY-----

RSA python3 代碼

python 3.4
pycryptodome    3.6.6

代碼

#!/usr/bin/env python
# -*- coding=utf-8 -*-
"""
RSA加密
Key長度2048
"""
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
import base64


def handle_pub_key(key):
    """
    處理公鑰
    公鑰格式pem搪搏,處理成以-----BEGIN PUBLIC KEY-----開頭灰追,-----END PUBLIC KEY-----結(jié)尾的格式
    :param key:pem格式的公鑰,無-----BEGIN PUBLIC KEY-----開頭拟淮,-----END PUBLIC KEY-----結(jié)尾
    :return:
    """
    start = '-----BEGIN PUBLIC KEY-----\n'
    end = '-----END PUBLIC KEY-----'
    result = ''
    # 分割key干茉,每64位長度換一行
    divide = int(len(key) / 64)
    divide = divide if (divide > 0) else divide + 1
    line = divide if (len(key) % 64 == 0) else divide + 1
    for i in range(line):
        result += key[i * 64:(i + 1) * 64] + '\n'
    result = start + result + end
    return result


def encrypt(key, content):
    """
    ras 加密[公鑰加密]
    :param key: 無BEGIN PUBLIC KEY頭END PUBLIC KEY尾的pem格式key
    :param content:待加密內(nèi)容
    :return:
    """
    pub_key = handle_pub_key(key)
    pub = RSA.import_key(pub_key)
    cipher = PKCS1_v1_5.new(pub)
    encrypt_bytes = cipher.encrypt(content.encode(encoding='utf-8'))
    result = base64.b64encode(encrypt_bytes)
    result = str(result, encoding='utf-8')
    return result


print(encrypt("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCFNYuYB/HVQtDxdYTWg/qcL1YcP3n/1myBRvcYiRSXo6t07KhZvR+78RWVmlKOfLlK+86zgTuniQBsMANe/o2kyUie+MFuo/5VTaXpHVkZce0Hl/5cVN9nIZRDvjXir+yCQjO5fzAi2dagDWsMD3AtONKSrotTr92lJa28A35fewIDAQAB","123456"))

四、SHA加密

SHA1:

長度:40

Hmac-SHA512:

長度為128
需要key和message

五很泊、混淆js

學(xué)習(xí)態(tài)度:遇到混淆js角虫,先去找到自己數(shù)據(jù)生成的地方一步一步打斷點,扣出混淆js委造,本地一份戳鹅,瀏覽器調(diào)試一份,一步一步解析

速成:ob解析工具昏兆,網(wǎng)上有

六枫虏、無限debugger

//去除無限debugger
//方法一
var _con = Function.prototype.constructor;
Function.prototype.constructor = function(val){
  if(val = "debugger"){
    return 0;
  }
  return _con(val);
}

//方法二
Function.prototype.__constructor_back = Function.prototype.constructor ;
Function.prototype.constructor = function() {
    if(arguments && typeof arguments[0]==='string'){
        //alert("new function: "+ arguments[0]);
        if( "debugger" === arguments[0]){
            //arguments[0]="consoLe.Log(\"anti debugger\");";
            //arguments[0]=";";
            return
    }
    }
    return Function.prototype.__constructor_back.apply(this,arguments);
}

七,cookie

1.寫入cookie
document.cookie= XXXX
從這個角度找cookie的加密爬虱,走hook隶债,香的一批

八、中間人攻擊跑筝,js注入

RPC死讹,青花瓷

九、hook

hook 意思為鉤子曲梗,下面拿 讓子彈飛 舉例子

function 馬邦德(){
    conlose.log("這是馬邦德")
}
var 師爺 = 馬邦德

馬邦德 = function 張麻子(){
      conlose.log("張麻子扮演的馬邦德")
}
馬邦德()        // 輸出張麻子扮演的馬邦德
image.png

hook腳本看主頁中

END赞警、零散筆記

固定死的數(shù)據(jù)逛腿,直接這么拿


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市仅颇,隨后出現(xiàn)的幾起案子单默,更是在濱河造成了極大的恐慌,老刑警劉巖忘瓦,帶你破解...
    沈念sama閱讀 212,080評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搁廓,死亡現(xiàn)場離奇詭異,居然都是意外死亡耕皮,警方通過查閱死者的電腦和手機境蜕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凌停,“玉大人粱年,你說我怎么就攤上這事》D猓” “怎么了台诗?”我有些...
    開封第一講書人閱讀 157,630評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長赐俗。 經(jīng)常有香客問我拉队,道長,這世上最難降的妖魔是什么阻逮? 我笑而不...
    開封第一講書人閱讀 56,554評論 1 284
  • 正文 為了忘掉前任粱快,我火速辦了婚禮,結(jié)果婚禮上叔扼,老公的妹妹穿的比我還像新娘事哭。我一直安慰自己,他們只是感情好瓜富,可當我...
    茶點故事閱讀 65,662評論 6 386
  • 文/花漫 我一把揭開白布鳍咱。 她就那樣靜靜地躺著,像睡著了一般食呻。 火紅的嫁衣襯著肌膚如雪流炕。 梳的紋絲不亂的頭發(fā)上澎现,一...
    開封第一講書人閱讀 49,856評論 1 290
  • 那天仅胞,我揣著相機與錄音,去河邊找鬼剑辫。 笑死干旧,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的妹蔽。 我是一名探鬼主播椎眯,決...
    沈念sama閱讀 39,014評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼挠将,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了编整?” 一聲冷哼從身側(cè)響起舔稀,我...
    開封第一講書人閱讀 37,752評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掌测,沒想到半個月后内贮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,212評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡汞斧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,541評論 2 327
  • 正文 我和宋清朗相戀三年夜郁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粘勒。...
    茶點故事閱讀 38,687評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡竞端,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出庙睡,到底是詐尸還是另有隱情事富,我是刑警寧澤,帶...
    沈念sama閱讀 34,347評論 4 331
  • 正文 年R本政府宣布乘陪,位于F島的核電站赵颅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏暂刘。R本人自食惡果不足惜饺谬,卻給世界環(huán)境...
    茶點故事閱讀 39,973評論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谣拣。 院中可真熱鬧募寨,春花似錦、人聲如沸森缠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,777評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贵涵。三九已至列肢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宾茂,已是汗流浹背瓷马。 一陣腳步聲響...
    開封第一講書人閱讀 32,006評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留跨晴,地道東北人欧聘。 一個月前我還...
    沈念sama閱讀 46,406評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像端盆,于是被迫代替她去往敵國和親怀骤。 傳聞我的和親對象是個殘疾皇子费封,可洞房花燭夜當晚...
    茶點故事閱讀 43,576評論 2 349