【游功シリーズ】2023年6月 Bugku-Web(game1)


序文

MD5 は、任意の長さの情報を暗号化し、固定長のハッシュ値 (通常は 128 ビット) を生成できる一般的な暗号化アルゴリズムです。MD5 暗号化アルゴリズムは不可逆的です。つまり、ハッシュ値から元のデータを復元することはできません。パスワードやデジタル署名などの機密情報の暗号化処理に広く使用されています。

インターフェイス署名とは、インターフェイス パラメーターを暗号化して、要求データと応答データのセキュリティと整合性を確保し、データの改ざんや偽造を防ぐことを指します。インターフェース署名は通常、リクエストパラメータを暗号化して署名値を生成し、その署名値をリクエストパラメータの一部としてサーバに送信し、サーバは署名値の正当性を検証することでリクエストの正当性を判断します。具体的な機能と意味は次のとおりです。

  1. データの改ざんを防止する: インターフェースのパラメーターを暗号化することで、送信中のリクエストまたは応答データの改ざんや偽造を防ぐことができます。

  2. リプレイ攻撃の防止: シグネチャ値はリクエスト パラメーターに基づいて生成され、各リクエストのパラメーターが異なるため、リプレイ アタックを効果的に防止できます。

  3. インターフェイスのセキュリティの向上: インターフェイスの署名により、インターフェイスのセキュリティがある程度向上し、データの信頼性が保証されます。

  4. 監視と追跡: 署名値はリクエスト パラメーターに従って生成されるため、署名値を監視および追跡することでインターフェイスのセキュリティをさらに強化できます。

1.ゲーム1

1. トピック

ここに画像の説明を挿入

2. 質問に答える

ここに画像の説明を挿入
ゲームの場合、スコアが一定レベルまで高ければクリアできるのが一般的です

bp をオンにしてパケットをキャプチャする

ディスカバリー: ゲームが終了すると、Web ページがパケットを送信します。

ここに画像の説明を挿入
クリックしてご覧ください

ここに画像の説明を挿入
スコアの値を直接変更してみる

ここに画像の説明を挿入
明らかに、それはうまくいきません。スコアの信頼性を検証するための他のパラメーターがあることを示します。このパラメーターは記号であるか、Cookie 内にある可能性があります。

解決策: パッケージを複数回送信し (ゲームを複数回プレイし、異なる値を保持します)、異なる値を比較します。

ここに画像の説明を挿入
明らかに、スコアが異なる場合、異なるパッケージ間のギャップはスコアと符号にあります。

符号と比較すると、符号は zM + **** + == で構成されていることがわかります。

最初のパケット内の修飾された 4 桁の数字を cmd5 に渡して復号化すると、これがスコアであることがわかりました。

したがって、sign = zM + Base64(スコア) + == と判断されます。

したがって、スコアを変更したい場合は、スコア = 999999 および符号 = zM+base64(999999) + == を設定する必要があります。

base64(999999) この特定の値は cmd5 で暗号化できます。

データパケットは以下の通り、
ここに画像の説明を挿入
フラグの取得に成功しました

おすすめ

転載: blog.csdn.net/aa2528877987/article/details/131369831