要件:ユーザーが正常にログインすると、Discuzプログラムは応答的にログイン情報をクッキーに書き込みます。クッキーが既知であれば、クッキー内の現在ログインしているユーザーのユーザーIDはどのように復号しますか?
まずサーバーにログインして閲覧する必要があります/config/config_global.php以下の構成には2つの構成があります。
クッキーのプレフィックス:$_config['クッキー']['クッキープレ'] 暗号化と復号キー:$_config['security']['authkey']
このサイトを例に挙げましょう:$_config['cookie']['cookiepre'] = 'Mqd1_'; クッキー内の :Mqd1_2132_saltkey と Mqd1_2132_auth の値をよく見てください。
原理は以下の通りです。
$authkey = 「*********」; これが秘密の鍵だ。 $_config['security']['authkey'] = config/config_global.phpファイルの '*******'; これが現実です。自分の所有物を見れば、それが現実です。 $salt = $_COOKIE['Mqd1_2132_saltkey']; これはディスクズによって生成される乱数です。 $key = md5($authkey.$salt); 復号鍵 $info = uc_authcode($_COOKIE['Mqd1_2132_auth'], 'DECODE',$key);
その後、$infoを印刷して、こんな感じの結果が得られます:
BF6B7E1DDD3DA431342F550EB8CE19E5 1
最後に1などの数字があり、これはユーザーIDを表していることが分かりました。これにより、ユーザー情報を取得し、さらにこのIDに基づいてuCenterのユーザー情報を得ることができました。 復号方法がわかれば、C#コードは次のようになります:
対応する情報をプログラムに入力すると、実行結果は以下の通りです。
プログラムダウンロード:
観光客の皆さん、この投稿の隠された内容を見たい方は、どうぞ 答える
|