# クリックジャッキング
☁️ 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)**。** * **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
\ [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ 今すぐアクセスを取得: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## クリックジャッキングとは クリックジャッキングは、**ユーザー**を**騙して**別の要素として**見えない**または別の要素に偽装されたウェブページの要素を**クリック**させる攻撃です。これにより、ユーザーは知らずにマルウェアをダウンロードしたり、悪意のあるウェブページを訪れたり、資格情報や機密情報を提供したり、お金を送金したり、オンラインで商品を購入したりすることがあります([ここから](https://www.imperva.com/learn/application-security/clickjacking/))。 ### フォームの事前入力トリック 時には、ページの読み込み時にGETパラメータを使用してフォームのフィールドの値を**自動的に入力**することができます。攻撃者はこの動作を悪用して、フォームに任意のデータを入力し、クリックジャッキングペイロードを送信してユーザーがボタンを押すようにします。 ### ドラッグ&ドロップでフォームを入力 ユーザーに**フォームの入力**を求める必要があるが、特定の情報(例:メールアドレスや特定のパスワード)を直接尋ねることはしたくない場合は、[**この例**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/)のように、制御されたデータを書き込む何かをドラッグ&ドロップするようにユーザーに依頼することができます。 ### 基本的なペイロード ```markup
Click me
``` ### マルチステップペイロード In some cases, a simple clickjacking attack may not be enough to achieve the desired outcome. In such situations, a multistep payload can be used to execute a series of actions on the victim's behalf. いくつかの場合、単純なクリックジャッキング攻撃では望む結果を得ることができない場合があります。そのような状況では、マルチステップペイロードを使用して、被害者の代わりに一連のアクションを実行することができます。 The idea behind a multistep payload is to trick the victim into performing multiple actions without their knowledge. This can be achieved by embedding multiple invisible iframes within the clickjacked page, each pointing to a different target. マルチステップペイロードのアイデアは、被害者が知らないうちに複数のアクションを実行するように騙すことです。これは、クリックジャックされたページ内に複数の見えないiframeを埋め込むことで実現できます。それぞれのiframeは異なるターゲットを指すようにします。 When the victim clicks on the clickjacked page, they unknowingly trigger the actions associated with each iframe. This can include performing actions such as liking a post, following a user, or even making a purchase. 被害者がクリックジャックされたページをクリックすると、彼らはそれぞれのiframeに関連付けられたアクションを知らずにトリガーします。これには、投稿の「いいね」、ユーザーのフォロー、さらには購入などのアクションが含まれることがあります。 To create a multistep payload, you will need to identify the actions you want to perform and the targets for each action. Then, you can create the necessary iframes and embed them within the clickjacked page. マルチステップペイロードを作成するには、実行したいアクションと各アクションのターゲットを特定する必要があります。その後、必要なiframeを作成し、クリックジャックされたページに埋め込むことができます。 It's important to note that the use of multistep payloads may increase the complexity of the attack and may require additional techniques to ensure the actions are performed successfully. マルチステップペイロードの使用は、攻撃の複雑さを増す可能性があり、アクションが正常に実行されるようにするために追加のテクニックが必要になることに注意してください。 ```markup
Click me first
Click me next
``` ### ドラッグ&ドロップ + クリックのペイロード Clickjacking is a technique that tricks users into clicking on something they didn't intend to click on. One way to achieve this is by combining the drag and drop functionality with a click payload. Clickjackingは、ユーザーが意図しないものをクリックするように騙す技術です。ドラッグ&ドロップ機能とクリックのペイロードを組み合わせることで、これを実現する方法があります。 The idea is to overlay an invisible element on top of a legitimate button or link, and then use the drag and drop functionality to move the invisible element over the button or link. When the user tries to click on the visible button or link, they are actually clicking on the invisible element, triggering the click payload. このアイデアは、正規のボタンやリンクの上に見えない要素を重ねて配置し、ドラッグ&ドロップ機能を使用して見えない要素をボタンやリンクの上に移動させることです。ユーザーが見えるボタンやリンクをクリックしようとすると、実際には見えない要素をクリックしてしまい、クリックのペイロードがトリガーされます。 To create a drag and drop + click payload, follow these steps: ドラッグ&ドロップ + クリックのペイロードを作成するには、以下の手順に従ってください: 1. Identify the target button or link that you want the user to unintentionally click on. ユーザーが意図せずにクリックすることを望む対象のボタンやリンクを特定します。 2. Create an invisible element, such as a div, with a higher z-index than the target button or link. 対象のボタンやリンクよりも高いz-indexを持つ、divなどの見えない要素を作成します。 3. Position the invisible element directly on top of the target button or link using CSS. CSSを使用して、見えない要素を対象のボタンやリンクの上に直接配置します。 4. Implement the drag and drop functionality on the invisible element using JavaScript. JavaScriptを使用して、見えない要素にドラッグ&ドロップ機能を実装します。 5. When the user tries to click on the visible button or link, the invisible element will intercept the click event and trigger the desired action. ユーザーが見えるボタンやリンクをクリックしようとすると、見えない要素がクリックイベントを傍受し、所望のアクションがトリガーされます。 By combining drag and drop with a click payload, you can deceive users into performing unintended actions, such as submitting forms, granting permissions, or making purchases, without their knowledge or consent. ドラッグ&ドロップとクリックのペイロードを組み合わせることで、ユーザーが意図しないアクション(フォームの送信、権限の付与、購入など)を知らずに行わせることができます。 ```markup
.
1. Click and press delete button
3.Click me

2.DRAG ME TO THE RED BOX

``` ### XSS + クリックジャッキング ユーザーがクリックする必要がある **XSS 攻撃** を特定し、ページが **クリックジャッキングの脆弱性** を持っている場合、ユーザーを騙してボタン/リンクをクリックさせることで悪用することができます。\ 例:\ _アカウントの一部のプライベートな詳細情報(あなただけが設定および読み取り可能な詳細情報)に **セルフ XSS** を見つけました。これらの詳細を設定するためのページは **クリックジャッキングの脆弱性** を持っており、GET パラメータで **フォーム** を **事前に入力** することができます。_\ \_\_攻撃者は、そのページに対して **クリックジャッキング攻撃** を準備し、**XSS ペイロード** を **フォーム** に **事前に入力** して **ユーザー** を **フォームを送信** するように **騙す** ことができます。そのため、**フォームが送信されると** 値が変更され、**ユーザーが XSS を実行** します。 ## クリックジャッキングを回避する方法 ### クライアント側の防御策 クリックジャッキングを防ぐために、クライアント側で以下の動作を行うスクリプトを実行することができます。 * 現在のアプリケーションウィンドウがメインまたはトップウィンドウであることを確認および強制する * すべてのフレームを表示する * 不可視フレームをクリックできないようにする * ユーザーに対して潜在的なクリックジャッキング攻撃を検出および通知する #### バイパス フレームバスターは JavaScript であるため、ブラウザのセキュリティ設定によってその動作が阻止される場合があります。また、ブラウザが JavaScript をサポートしていない場合もあります。フレームバスターに対する効果的な攻撃者の回避策は、**HTML5 の iframe `sandbox` 属性** を使用することです。この属性を `allow-forms` または `allow-scripts` の値で設定し、`allow-top-navigation` の値を省略すると、フレームバスタースクリプトは中断されます。なぜなら、iframe は自身がトップウィンドウであるかどうかをチェックできないからです。 ```markup ``` `allow-forms`と`allow-scripts`の両方の値は、iframe内で指定されたアクションを許可しますが、トップレベルのナビゲーションは無効になります。これにより、ターゲットサイト内の機能は許可されますが、フレームの破壊行為は防止されます。 実行するClickjacking攻撃のタイプによっては、`allow-same-origin`と`allow-modals`、または[さらに多くの設定](https://www.w3schools.com/tags/att\_iframe\_sandbox.asp)が必要になる場合があります。攻撃を準備する際には、ブラウザのコンソールを確認して、他の設定が必要かどうかを確認してください。 ### X-Frame-Options **`X-Frame-Options` HTTPレスポンスヘッダー**は、ブラウザがページを``または`