8.7 KiB
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
-
The PEASS Familyを見つけてください、独占的なNFTのコレクションです。
-
公式のPEASS&HackTricksのグッズを手に入れましょう。
-
💬 Discordグループまたはtelegramグループに参加するか、Twitterでフォローしてください🐦@carlospolopm。
-
ハッキングのトリックを共有するには、hacktricksリポジトリとhacktricks-cloudリポジトリにPRを提出してください。
ECB
(ECB) Electronic Code Book - 対称暗号化方式で、クリアテキストの各ブロックを暗号文のブロックで置き換えます。これは最も単純な暗号化方式です。主なアイデアは、クリアテキストをNビットのブロック(入力データのブロックサイズ、暗号化アルゴリズムに依存)に分割し、その後、唯一の鍵を使用して各クリアテキストのブロックを暗号化(復号化)することです。
ECBの使用には、複数のセキュリティ上の問題があります:
- 暗号化されたメッセージからブロックを削除することができます。
- 暗号化されたメッセージからブロックを移動することができます。
脆弱性の検出
アプリケーションに複数回ログインし、常に同じクッキーを取得すると想像してください。これは、アプリケーションのクッキーが**<username>|<password>
であるためです。
次に、同じ長いパスワードとほぼ同じ** ユーザー名を持つ新しいユーザーを2人生成します。
2つのデコードされたクッキーには、ブロック**\x23U\xE45K\xCB\x21\xC8
**が複数回含まれていることに注意してください。
\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8\x04\xB6\xE1H\xD1\x1E \xB6\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8+=\xD4F\xF7\x99\xD9\xA9
\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8\x04\xB6\xE1H\xD1\x1E \xB6\x23U\xE45K\xCB\x21\xC8\x23U\xE45K\xCB\x21\xC8+=\xD4F\xF7\x99\xD9\xA9
これは、クッキーのユーザー名とパスワードに複数回文字 "a" が含まれていたためです(例えば)。異なるブロックは、少なくとも1つの異なる文字(おそらく区切り記号 "|" またはユーザー名に必要な違い)を含んでいるブロックです。
さて、攻撃者は単に、<username><delimiter><password>
または <password><delimiter><username>
の形式を見つける必要があります。そのために、彼は単に類似した長いユーザー名とパスワードを持つ複数のユーザー名を生成し、区切り記号の形式と長さを見つけるまで続けることができます。
ユーザー名の長さ | パスワードの長さ | ユーザー名+パスワードの長さ | クッキーの長さ(デコード後) |
---|---|---|---|
2 | 2 | 4 | 8 |
3 | 3 | 6 | 8 |
3 | 4 | 7 | 8 |
4 | 4 | 8 | 16 |
7 | 7 | 14 | 16 |
脆弱性の悪用
クッキーの形式を知っている(<username>|<password>
)、ユーザー名 admin
をなりすますために、aaaaaaaaadmin
という新しいユーザーを作成し、クッキーを取得してデコードします:
\x23U\xE45K\xCB\x21\xC8\xE0Vd8oE\x123\aO\x43T\x32\xD5U\xD4
以前に作成されたユーザー名には、\x23U\xE45K\xCB\x21\xC8
というパターンが見られます。
次に、最初の8Bのブロックを削除すると、ユーザー名admin
の有効なクッキーが得られます。
\xE0Vd8oE\x123\aO\x43T\x32\xD5U\xD4
ブロックの移動
多くのデータベースでは、WHERE username='admin';
と WHERE username='admin ';
の検索は同じです。 (余分なスペースに注意)
したがって、ユーザー admin
をなりすます別の方法は次のとおりです。
len(<username>) + len(<delimiter) % len(block)
となるようなユーザー名を生成します。ブロックサイズが8B
の場合、username
というユーザー名を生成できます。デリミタには|
を使用し、チャンク<username><delimiter>
は 2 つの 8B ブロックを生成します。- 次に、ユーザー名とスペースを含むブロックの正確な数を埋めるパスワードを生成します。例えば、
admin
というパスワードを生成します。
このユーザーのクッキーは、3 つのブロックで構成されます。最初の 2 つはユーザー名 + デリミタのブロックであり、3 つ目はパスワードのブロックです(ユーザー名を偽装しています):username |admin
** その後、最初のブロックを最後のブロックと置き換えるだけで、ユーザー admin
をなりすませることができます:admin |username
**
参考文献
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
サイバーセキュリティ企業で働いていますか? HackTricks で会社を宣伝したいですか?または、PEASS の最新バージョンや HackTricks の PDF をダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
-
The PEASS Familyを発見しましょう。独占的な NFT のコレクションです。
-
公式の PEASS & HackTricks スワッグを手に入れましょう。
-
💬 Discord グループ または telegram グループ に参加するか、Twitter 🐦@carlospolopm** をフォローしてください。**
-
ハッキングのトリックを共有するには、hacktricks リポジトリとhacktricks-cloud リポジトリに PR を提出してください。