# ダングリングマークアップ - HTMLスクリプトレスインジェクション {{#include ../../banners/hacktricks-training.md}} ## 概要 この技術は、**HTMLインジェクションが見つかった場合**にユーザーから情報を抽出するために使用できます。これは、**[**XSS**](../xss-cross-site-scripting/index.html)**を悪用する方法が見つからない場合でも、**いくつかのHTMLタグを注入できる**場合に非常に便利です。\ また、HTML内に**秘密が平文で保存されている**場合に、それをクライアントから**抽出**したり、スクリプトの実行を誤導したりするのにも役立ちます。 ここでコメントされているいくつかの技術は、情報を予期しない方法(HTMLタグ、CSS、HTTPメタタグ、フォーム、ベースなど)で抽出することによって、いくつかの**[**コンテンツセキュリティポリシー**](../content-security-policy-csp-bypass/index.html)**を回避するために使用できます。 ## 主なアプリケーション ### 平文の秘密を盗む ページが読み込まれるときに`test ``` ### フォームの盗難 ```html ``` 次に、データをパスに送信するフォーム(例えば `
`)は、悪意のあるドメインにデータを送信します。 ### フォームの盗難 2 フォームヘッダーを設定します:`` これにより、次のフォームヘッダーが上書きされ、フォームからのすべてのデータが攻撃者に送信されます。 ### フォームの盗難 3 ボタンは、属性 "formaction" を使用して、フォームの情報が送信されるURLを変更できます: ```html ``` 攻撃者はこれを使用して情報を盗むことができます。 この攻撃の[**例はこの文書にあります**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp)。 ### プレーンテキストの秘密を盗む 2 最新の技術を使用してフォームを盗む(新しいフォームヘッダーを注入する)ことで、新しい入力フィールドを注入することができます: ```html ` タグを注入することで行うことができます。閉じた `` が見つかるまでのすべてのデータが送信されます: ```html Click Me ← Injected lines ← Existing form (ignored by the parser) ... ← Subverted field ... ...
``` ### ノースクリプトを介したクリアテキストシークレットの盗難 `` は、ブラウザがJavaScriptをサポートしていない場合にその内容が解釈されるタグです(Chromeでは [chrome://settings/content/javascript](chrome://settings/content/javascript) でJavaScriptを有効/無効にできます)。 攻撃者が制御するサイトに対して、注入ポイントからページの内容を抽出する方法は、これを注入することです: ```html