# ダングリングマークアップ - HTMLスクリプトレスインジェクション
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 - **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクション - [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう - [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** - **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
## 概要 このテクニックは、**HTMLインジェクションが見つかった場合にユーザーから情報を抽出する**ために使用できます。これは、[**XSS** ](xss-cross-site-scripting/)を**悪用する方法が見つからない**場合に非常に便利ですが、いくつかのHTMLタグを**インジェクトすることができる**場合です。\ また、HTML内に**平文で保存された秘密**がある場合に、クライアントからそれを**外部に持ち出す**ためにも役立ちます。また、スクリプトの実行を誤認させるためにも使用できます。 ここでコメントされているいくつかのテクニックは、予期しない方法で情報を外部に持ち出すことによって、いくつかの[**コンテンツセキュリティポリシー**](content-security-policy-csp-bypass/)をバイパスするために使用できます(htmlタグ、CSS、http-metaタグ、フォーム、baseなど)。 ## 主な応用 ### 平文の秘密の盗み出し `test ``` ### フォームの盗み出し When conducting a web application penetration test, it is important to identify and exploit any vulnerabilities that may exist in the application's forms. One such vulnerability is known as "dangling markup" or "HTML scriptless injection." Web forms are commonly used to collect user input, such as login credentials or personal information. In some cases, the form data is not properly sanitized or validated on the server side, allowing an attacker to inject malicious code into the form fields. HTML scriptless injection is a technique that takes advantage of this vulnerability by injecting HTML tags into the form fields. These tags are designed to execute JavaScript code when the form is submitted, allowing the attacker to steal sensitive information or perform other malicious actions. To exploit this vulnerability, the attacker needs to identify a form that is vulnerable to HTML scriptless injection. This can be done by manually inspecting the HTML source code of the web application or by using automated scanning tools. Once a vulnerable form is identified, the attacker can inject HTML tags into the form fields. For example, the attacker may inject a ` ``` ### 誤解を招くスクリプトのワークフロー1 - HTMLネームスペース攻撃 次のタグを上書きし、スクリプトのフローに影響を与える値を持つ、HTML内に新しいタグを挿入します。この例では、情報を共有する相手を選択します。 ```html
``` この攻撃では、`data-share-with`属性の値を変更することで、スクリプトのフローを操作することができます。 ```markup ← Injected markup ... Share this status update with: ← Legitimate optional element of a dialog ... function submit_status_update() { ... request.share_with = document.getElementById('share_with').value; ... } ``` ### 誤解を招くスクリプトのワークフロー2 - スクリプト名前空間攻撃 HTMLタグを挿入してJavaScriptの名前空間内に変数を作成します。その後、この変数はアプリケーションのフローに影響を与えます。 ```markup ← Injected markup ... // Legitimate application code follows function retrieve_acls() { ... if (response.access_mode == AM_PUBLIC) ← The subsequent assignment fails in IE is_public = true; else is_public = false; } function submit_new_acls() { ... if (is_public) request.access_mode = AM_PUBLIC; ← Condition always evaluates to true ... } ``` ### JSONPの乱用 JSONPインターフェースを見つけた場合、任意の関数と任意のデータを呼び出すことができる可能性があります。 ```markup ``` ### Iframeの悪用 注意してください、**子ドキュメントは親のlocationプロパティを表示および設定することができます。** これは、クライアントが他のページにアクセスすることができることを意味します。以下のようなコードを**iframe**内に読み込むことで、クライアントが他のページにアクセスできます。 ```markup ``` これは次のように緩和できます: _**sandbox='allow-scripts allow-top-navigation'**_ また、iframeを使って異なるページから**iframeのname属性を利用して**機密情報を漏洩させることもできます。これは、HTMLインジェクションを悪用して自身をiframe化するiframeを作成することができるため、**機密情報がiframeのname属性内に表示され、それを初期のiframeからアクセスして漏洩させることができる**からです。 ```html ``` 詳細については、[https://portswigger.net/research/bypassing-csp-with-dangling-iframes](https://portswigger.net/research/bypassing-csp-with-dangling-iframes)を参照してください。 ### \`またはリダイレクトを実行できます(この場合は5秒後に):`` これは、**http-equiv**に関する**CSP**で回避することができます( `Content-Security-Policy: default-src 'self';`または `Content-Security-Policy: http-equiv 'self';`) ### 新しい\