i春秋Fuzzing

まず、ソースコードを確認してください。ノー事、霊妙

 

 

何も見つかりませんが、右側にヒントがあるヒント:IP、大規模な内部ネットワーク(最大のネットワーク IP

私たちは、これが単純で、直接的ではない、偽のコードアクセスする必要があるかもしれませんリクエストで参加します

X-転送さ-の場合:10.0.0.0

 

 

偽造するために、 IPを

行くの発見についての要求新しいファイルがあるバー

 

 

ファイル名をコピーし、新しい作成する権限リピータアクセスしようとします

 

 

変更 GETのURLのファイルにアクセスするためのバー

 

弹出私にあなたのキーを表示

従来の考え方は、直接である GETのバーの着信

 

 

行く何の反応を見ていません。試してみてくださいPOST 着信を

要求列選択モード変更要求

 

 

直接に POST 、合格GO 見えます

プロンプトが表示され

 

 

私たちの鍵は正しい、正しくないキーがあるMD5 はい。そして、このキー形式は*** ichunqiu * 範囲...)

ここでは、(努力を続けるスクリプトブラストを書くことができます *** あなたが翻訳できるかどうかを確認するためにも直接行くことができる組み合わせ)

 

 

入ってくるに戻って取得するには

 

 

次のステップを取得するためのヒント

PHP ファイル、直接アクセスしてみてください

 

 

与えられた次のステップのヒント

この暗号化源である x0.txt 暗号化されていること、その後フラグをはい。

私たちは、直接アクセス x0.txtを

 

 

本当に暗号化プロセスであります

彼によると、暗号化処理は、復号化されたスクリプトを記述するために逆転されます

<?PHPの
 関数 AUTHCODE($文字列$操作 = 'DECODE'、$キー = ''、$有効期限 = 0 ){
     $のckey_length = 4 

    $キー = MD5$キーキー$UC_KEY);
    $のKEYA = MD5SUBSTR$キー、0、16 ));
    $ KEYB = MD5SUBSTR$キー、16、16 ));
    $ KEYC = $ ckey_length$操作 == 'DECODE'?SUBSTR$文字列、0、$のckey_length):SUBSTRMD5のmicrotime())、 - $のckey_length)): '' ; 

    $ cryptkey = $ KEYAMD5$のKEYA$ KEYC )。
    $ key_length = strlen関数$のcryptkey )。

    $文字列 = $操作 == 'DECODE'?BASE64_DECODESUBSTR$文字列$のckey_length)):sprintf( '%の010D'、$有効期限$満了 + 時間():0)。SUBSTRMD5$文字列$ KEYB)、0、16)。$文字列$ STRING_LENGTH = strlen関数$文字列); 

    $結果 = '' ;
    $ボックス = 範囲(0、255 ); 

    $ rndkey = 配列();
    以下のために$ I = 0; $ iが 255 = <; $ iは ++ ){
         $のrndkeyの [$ I ] = ORD$ cryptkey [ $ I%の$のkey_length ])。
    } 

    ための$ J = $ I = 0; $ iが 256 <; $ iは ++ ){
         $ jを =($ jの +の$ボックス [ $ I ] + $ rndkey [ $ I ])%256 $ TMP = $ボックス [ $ I ];
        $ボックス [ $ I ] = $ボックス [ $ jを];
        $ボックス[ $ jの ] = $ TMP ; 
    } 

    のために$ A = $ J = $ I = 0; $ iが < $ STRING_LENGTHを$ iが ++ ){
         $ =($ Aを + 1)%256 の$ J =($ jの +の$ボックス [ $ A ])%256 $ TMP = $ボックス [ $ A ];
        $ボックス [ $ A ] = $ボックス [ $ jを];
        $ボックス[ $ jの ] = $ TMP ;
        $結果 = CHRORD$文字列 [ $ I ])^($ボックス [($ボックス [ $ A ] + $ボックス [ $のJ ])%256 ]))。
    } 

    もし$操作 == 'DECODE' ){
         もし、((SUBSTR$結果、0、10)== 0 || SUBSTR$結果、0、10) - 時間()> 0)&& SUBSTR$結果、10、16)==のSUBSTRMD5SUBSTR$結果、26)。$のKEYB)、0、16 )){
             戻り SUBSTR$結果、26 )。
        } {
             戻り '' ; 
        } 
    } {
         リターン の$ KEYCstr_replace( '='、 ''、BASE64_ENCODE$結果)); 
    } 

} 

エコー AUTHCODE($文字列= '5f04rJx7uHz25mDp4vUfC0JB4Nx5nMvyQzHwjRb6kN88N + T9RRipbwbHDIcRWtqXjemcJit26oE1Vu6lpdQPZ6St / obCAEc'、$操作 = 'DECODE'、$キー = 'ichunqiu105' );
?>

バックコンタクト暗号文の文字列

取得するローカル実行フラグを

 

おすすめ

転載: www.cnblogs.com/wosun/p/11505883.html