なんとか行政処分_sojson_v6 調査事例

免責事項:この記事は学習とコミュニケーションのみを目的としており、違法な目的、商業活動などに使用することを禁止します。それ以外の場合は、ご自身の責任で行ってください。侵害がある場合は、通知して削除してください。ありがとうございます。このチュートリアルは、特定の Web サイト向けに特別に書かれたものではなく、純粋に技術的な研究を目的としています。

事例分析

対象ケース:ケースリンク

1. 対応するインターフェース
ここに画像の説明を挿入
2. 対応する困難
ここに画像の説明を挿入
ここに画像の説明を挿入

パラメトリック分析

最初のリクエストで返された set-cookie は、対応するインターフェイスが 2 回目にリクエストされ、取得された set-cookie を通じてデータを取得できます。初めて取得された cookie は 2 回目の cookie に渡されます
ここに画像の説明を挿入

ここに画像の説明を挿入
パラメータを暗号化して返し、次のリクエストでデータを取得します。初めてクッキーが
ここに画像の説明を挿入
リクエストされたとき、ページは対応する js も同期的に返し、js の暗号化されたフィールドを渡しますそして、
ここに画像の説明を挿入
Cookieを使用してすべてのステップの二次検証を実行しますすでに理解しましたので、ブレークポイントの設定方法を分析しましょう
ここに画像の説明を挿入
複数のリクエストを通じて、赤枠の値が変更されていないことがわかります。検索してみると、
ここに画像の説明を挿入
上記のブロックが返されることがわかります。リクエストが行われたとき、URL を生成するにはこの値を他の値と組み合わせる必要があると大胆に推測し、それをjs ファイルを使用して対応する呼び出しを見つけます。次に、デバッグ方法を説明します。ここで見つけました。
ここに画像の説明を挿入
更新すると、無限デバッガに入ります。これには、初めて生成された js も含まれます。次に、赤いボックスをクリックして上記の位置を見つけます。ブレークポイントを設定します。ここでは、
ここに画像の説明を挿入
ここに画像の説明を挿入
ワイヤレス デバッガを右クリックしてフィルタリングできます。ここで約 2 行は一時停止しないでください。一度ループから抜け出して、
ここに画像の説明を挿入
ブレークポイントの位置
ここに画像の説明を挿入
に入りました。分析したところ、前者と後者は固定されているため、2 つのパラメータを除外しました。n
ここに画像の説明を挿入
ここに画像の説明を挿入
の値が d によって処理されたことがわかりました。
ここに画像の説明を挿入
ここで、toSting プロセスが d に対して実行されることがわかります。d は、
ここに画像の説明を挿入
k 内の関数を呼び出すことによって行われます。 y の値は自分で確認できます。デバッグを通じて、
ここに画像の説明を挿入
k の関数が呼び出され、渡された値が関数と対応する d 値であることがわかります。
ここに画像の説明を挿入
ここでは、gV('0x570', 'z6h!') が k で KPYxL 関数を呼び出し、次に 2 つの入力パラメーターを処理していることがわかります。最初の入力パラメーターは関数であるため、最初の入力パラメーター関数を呼び出し、次に関数を呼び出します。観察する
ここに画像の説明を挿入
と、これら 2 つの関数によって生成された値が k のメソッドであることがわかりました。
ここに画像の説明を挿入
その後、それを書き込み
ここに画像の説明を挿入
、この行を js にコピーして表示できます。このとき、次のように実行します。何が報告されているかを確認してください。間違いを埋め合わせてください。ここには
ここに画像の説明を挿入
k がないことがわかり
ここに画像の説明を挿入
、ここに k をコピーします。この時点では、実行で不足しているものを補えば十分です。
ここに画像の説明を挿入
その後の分析では、この N がd の値を取得し、base64 で暗号化すると、ノードで直接呼び出すことができます。btoa は
ここに画像の説明を挿入
ここで終了です。不足している関数を補うには、上記のプロセスに従ってください。
バイバイ!
ここに画像の説明を挿入

結果を示す

ここに画像の説明を挿入

コード表示

var Q = '/WZWSREL2Z6aHNoYW5naGFpLzExMzU3Ny8xMTQ4MzIvMTE0OTE4LzE0NjgxL2luZGV4Mi5odG1s';
var M = 'Z!]XbG+5&';
var t = '6104';
var k = {
    
    
        'yvWGd': function (V, p) {
    
    
        return V + p;
    },
    'ucTiE': function (V) {
    
    
        return V();
    },
        'KPYxL': function (V, p) {
    
    
        return V(p);
    },
};
function y() {
    
    

    var v = {
    
    
        'bATca': '5|2|0' + "|1|4|" + '3',
        'FbdfM': function (C, d) {
    
    
            return C < d;
        },
        'fvfPH': function (C, d) {
    
    
            return C + d;
        }
    };


    var A = v['bATca'].split('|');

    var u = -0x1d8b * -0x1 + 0x155f + 0x3a3 * -0xe;
    while (!![]) {
    
    
        switch (A[u++]) {
    
    
            case '0':
                for (k = 0x1 * 0x21ad + 0x1 * -0x3cd + -0x20 * 0xef; v['FbdfM'](k, M['lengt' + 'h']); k++) {
    
    
                    P += M['charC' + 'odeAt'](k);
                }
                continue;
            case '1':
                P *= t;
                continue;
            case '2':
                var k = 0x258f + 0x2 * 0x125f + 0x4a4d * -0x1;
                continue;
            case '3':
                return v["fvfPH"]('WZWS_CONFIRM_PREFIX_LABEL', P);
            case '4':
                P += -0x1 * 0x2317d + -0x1 * 0x1a622 + 0x589a6 * 0x1;
                continue;
            case '5':
                var P = -0xa * 0x3ca + -0x1668 + 0x22 * 0x1c6;
                continue;
        }
        break;
    }
};

var d = k['ucTiE'](y);
console.log(d)
var N = btoa(d['toStr' + "ing"]());
var K = k["yvWGd"](k['yvWGd'](Q, '?wzwschallenge='), N);
console.log(K)

おすすめ

転載: blog.csdn.net/w62181310/article/details/130862291