# Unicode Injection
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を入手する
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください
- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する:[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **ハッキングトリックを共有するには、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。**
## はじめに
バックエンド/フロントエンドが**奇妙なUnicode文字を受け取ったときの挙動**に応じて、攻撃者は**保護をバイパスし、任意の文字をインジェクト**して、XSSやSQLiなどの**インジェクション脆弱性を悪用**する可能性があります。
## Unicode正規化
Unicode正規化は、**Unicode文字がASCII文字に正規化**されるときに発生します。
このタイプの脆弱性の一般的なシナリオは、システムがユーザーの**入力をチェックした後に何らかの方法で変更**している場合です。たとえば、いくつかの言語では、**入力を大文字または小文字に変換**するだけの呼び出しで、与えられた入力が正規化され、**UnicodeがASCIIに変換**されて新しい文字が生成される可能性があります。\
詳細については、次を参照してください:
{% content-ref url="unicode-normalization.md" %}
[unicode-normalization.md](unicode-normalization.md)
{% endcontent-ref %}
## `\u`を`%`に変換
Unicode文字は通常、**`\u`接頭辞**で表されます。たとえば、文字`㱋`は`\u3c4b`です([こちらで確認](https://unicode-explorer.com/c/3c4B))。バックエンドが接頭辞**`\u`を`%`に変換**すると、結果の文字列は`%3c4b`になり、URLデコードされると**`<4b`**になります。そして、**`<`文字がインジェクト**されていることがわかります。\
バックエンドが脆弱な場合、このテクニックを使用して**任意の種類の文字をインジェクト**できます。\
必要な文字を見つけるには、[https://unicode-explorer.com/](https://unicode-explorer.com/)をチェックしてください。
この脆弱性は、実際には研究者が見つけた脆弱性に由来します。詳細な説明については、[https://www.youtube.com/watch?v=aUsAHb0E7Cg](https://www.youtube.com/watch?v=aUsAHb0E7Cg)をチェックしてください。
## 絵文字インジェクション
バックエンドは**絵文字を受け取ったときに何か変な挙動をする**ことがあります。それが起こったのが、[**この解説**](https://medium.com/@fpatrik/how-i-found-an-xss-vulnerability-via-using-emojis-7ad72de49209)で、研究者が`💋img src=x onerror=alert(document.domain)//💛`などのペイロードでXSSを達成したことです。
この場合、サーバーが悪意のある文字を削除した後、UTF-8文字列をWindows-1252からUTF-8に**変換**したことがエラーでした(基本的に入力エンコーディングと変換エンコーディングが一致していない)。その後、これは適切な`<`ではなく、奇妙なUnicodeの`‹`を生成します。\
``そのため、この出力を**再度UTF-8からASCIIに変換**しました。これにより、`‹`が`<`に**正規化**され、そのシステムでエクスプロイトが機能する仕組みです。\
これが起こったことです:
```php
ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**する。
* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。