Execution After Redirect (EAR) Zafiyetini Tanıyalım.

Will Graham

Katılımcı Üye
14 Eki 2022
581
489
Execution After Redirect (EAR) Zafiyetini Tanıyalım.

Bu yazımda çoğunluğun no-redirect olarak bildiği "Yönlendirmeden sonra yürütme" zafiyetinden bahsedeceğim. Bu zafiyet, kullanıcının izni olmadığı halde bir sayfayı görüntülemeye çalışmasından doğan bir güvenlik zafiyetidir. Sistem kullanıcının yetkisi olmadığı için başka bir sayfaya yönlendirme yapar, fakat yönlendirme işleminden sonra yapı die() fonksiyonunu kullanarak sonlandırılmadığı için yönlendirmelerin kapalı olduğu bir kural yazmanız dahilinde, görüntüleme izninizin olmadığı kısımlarını görüntüleyebilmenizi sağlar.
PHP:
<?php
session_start();

if (!isset($_SESSION['user'])) {
    header('Location: login.php');
}

echo 'bu görüntülenmemesi gereken bir metindir.';
?>

Yukarıda ki kodda if() koşulu ile kullanıcının bir oturumu olup olmadığı kontrol edilir ve oturumun bulunmadığı takdirde kullanıcıyı login.php sayfasına yönlendirir. Burada yapılan hata header() fonksiyonundan sonra die() fonksiyonunun kullanılmamasıdır. die() fonksiyonu kullanılmadığı için if koşulundan sonra ki kod çalıştırılacaktır ve ekrana "bu görüntülenmemesi gereken bir metindir." metinini çıkaracaktır.

Örnek olarak:


kxlhius.png


Zafiyetin Sömürülmesi

Zafiyetten yararlanabilmek için firefox'un eski sürümlerinde çalışan no-redirect eklentisini kullanılabilirsiniz ancak bu konumda daha kolay olması bakımından burp suite için bir kural yazacağız. Öncelikle burp suite'yi açıyoruz daha sonra ise proxy sekmesinde bulunan proxy settings butonuna tıklıyoruz. Bulunduğunuz sayfada aşağı kaydırarak "Match and replace rules" bölümünü bulmanız gerekiyor.

s5l27ul.png


Add butonuna bastığınızda karşınıza kural ekleyebileceğiniz bir sayfa gelecektir buraya aşağıda ki verileri karşılık geleceği şekilde yerleştirin ve "regex match" kutucunu seçip tamamlayın.

Type: Response header
Match: 30[12] Found
Replace: 200 OK
Comment: turkhackteam (buraya istediğinizi yazabilirsiniz)

58bv2x2.png


Bu işlemden sonra tarayıcınızın proxy ayarlarını burp suite'ye uygun olarak yapılandırdıktan sonra veya burp suite'nin içerisinde bulunan tarayıcıyı kullanarak zafiyetin bulunduğu sayfaları görüntüleyebilirsiniz.

8x6m89p.png


Zafiyetin Tespit Edilmesi

Zafiyetin tespiti çokta zor bir iş değil aslında. Yapmanız gereken sadece panelde bulunabilecek sayfaları teker teker url üzerinde deneyerek bir sayfaya erişmeye çalışmaktır, fakat bu işlem bazen çok can sıkıcı olabiliyor. Bu işlemi hızlıca yapabilmeniz için sizlere bir kaç gün önce github.com adresinde paylaştığım earscan aracını göstereceğim.

Bu araç, öncelikle panelde olmayan bir sayfayı kullanarak, sayfanın döndürdüğü içerik uzantısını alıyor ve devamında belirttiğiniz dosya listesinde ki dosyaların uygulama üzerinde görüntülenip görüntülenmediğini, önceden bulduğu içerik uzantısı ile karşılaştırarak anlıyor ve ekrana yazdırıyor.

Programı çalıştırabilmek için öncelikle git clone https://github.com/rk400/earscan/ komutunu kullanarak indirmeli, cd earscan komutunu kullanarak bulunduğu dizine gitmeli pip3 install -r requirements.txt komutunu kullanarak gerekli kütüphaneleri kurmalısınız. Daha sonra python3 main.py komutunu kullanarak programı çalıştırabilirsiniz.


rqq4aqv.png
 
Son düzenleme:
Ü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.