Unicode Injection
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
バックエンド/フロントエンドが奇妙なunicode文字を受け取ったときにどのように動作するかによって、攻撃者は保護を回避し、任意の文字を注入することができ、これによりXSSやSQLiなどの注入脆弱性を悪用することができるかもしれません。
Unicode正規化は、unicode文字がascii文字に正規化されるときに発生します。
この種の脆弱性の一般的なシナリオは、システムがユーザーの入力を確認した後に何らかの方法で変更する場合に発生します。たとえば、いくつかの言語では、入力を大文字または小文字にするための単純な呼び出しが、与えられた入力を正規化し、unicodeがASCIIに変換されて新しい文字が生成される可能性があります。 詳細については、次を確認してください:
Unicode Normalization\u
to %
Unicode文字は通常、\u
プレフィックスで表されます。たとえば、文字㱋
は\u3c4b
です(ここで確認)。バックエンドが**\u
プレフィックスを%
に変換すると、結果の文字列は%3c4b
になり、URLデコードすると<4b
になります。そして、見ての通り、<
文字が注入されます**。
バックエンドが脆弱であれば、この技術を使用して任意の種類の文字を注入することができます。
必要な文字を見つけるには、https://unicode-explorer.com/を確認してください。
この脆弱性は、研究者が発見した脆弱性から実際に来ています。詳細な説明については、https://www.youtube.com/watch?v=aUsAHb0E7Cgを確認してください。
バックエンドは、絵文字を受け取ったときに何か奇妙に動作します。これは、研究者が次のようなペイロードでXSSを達成したこのレポートで起こったことです:💋img src=x onerror=alert(document.domain)//💛
この場合、サーバーが悪意のある文字を削除した後、UTF-8文字列をWindows-1252からUTF-8に変換したことがエラーでした(基本的に入力エンコーディングと変換元エンコーディングが不一致でした)。そのため、適切な<を提供せず、奇妙なunicodeのものを提供しました:‹
``そのため、彼らはこの出力を取り、今度はUTF-8からASCIIに再変換しました。これにより、‹
が<
に正規化され、これがそのシステムでのエクスプロイトが機能する方法でした。
これが起こったことです:
Emojiリスト:
AWSハッキングを学び、練習する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、練習する: HackTricks Training GCP Red Team Expert (GRTE)