top of page


Portswigger Lab: Exploiting XXE Using External Entities to Retrieve Files
Lab Çözümü İlk olarak PortSwigger üzerinden laboratuvarı başlattım. Ardından Burp Suite'i açarak Proxy → Intercept bölümüne geçtim. Laboratuvarda herhangi bir ürünün sayfasını açıp Check stock butonuna tıkladım. Oluşan POST /product/stock isteğini yakaladıktan sonra sağ tıklayıp Send to Repeater seçeneğiyle Repeater'a gönderdim. Repeater'da isteği incelediğimde verilerin XML formatında gönderildiğini gördüm. İstek başlıklarında Content-Type: application/xml bulunuyordu. Burad
Songül ÖZÜGÜRLER
18 Eki


XML Entities
Web uygulamalarında güvenlik testleri yaparken çoğunlukla SQL Injection, XSS veya SSRF gibi zafiyetlerle karşılaşıyoruz. Ancak özellikle XML kullanan uygulamalarda karşımıza çıkabilecek önemli güvenlik açıklarından biri de XXE (XML External Entity Injection). XXE zafiyetini anlayabilmek için öncelikle XML'in nasıl çalıştığını, entity kavramını ve DTD yapısını bilmemiz gerekiyor. Bu yazıda XML'in temel yapısından başlayarak internal ve external entity'leri örneklerle inceleyec
Songül ÖZÜGÜRLER
17 Eki


Portswigger Academy — Lab: Username enumeration via subtly different responses
Portswigger Academy — Lab: Username enumeration via subtly different responses Merhaba! Bu labda amaç, uygulamanın verdiği küçücük response farklarını analiz ederek geçerli bir kullanıcı adını tespit etmek. Bu durum, gerçek hayatta sıkça karşımıza çıkan klasik bir “username enumeration” zafiyetine çok iyi bir örnek. Geçerli kullanıcıyı bulduktan sonra ise sırada o kullanıcı için parola brute-force yaparak hesaba erişmek var. Dışarıdan bakınca güvenli görünen bu uygulama aslın
Songül ÖZÜGÜRLER
28 Nis


Portswigger Academy Lab : Username enumeration via response timing Writeup
Portswigger Academy Lab : Username enumeration via response timing Writeup Merhaba Size bugün PortSwigger’daki “Username Enumeration via Response Timing” labını anlatacağım. Labın konusu kısaca şu: Uygulamanın bize verdiği yanıt sürelerini analiz ederek geçerli kullanıcı adını bulmak ve ardından bu kullanıcı için parola brute-force işlemi yaparak hesaba giriş sağlamak. Yani tamamen zaman farklarından yararlanarak username enumeration yapıyoruz. Ek olarak, uygulama IP tabanlı
Songül ÖZÜGÜRLER
28 Nis


Broken brute-force protection (IP block) — Writeup
Lab: (Broken brute-force protection, IP block) — Writeup Bu labda amaç, brute-force korumasındaki bir mantık hatasından yararlanarak “carlos” kullanıcısının şifresini brute-force ile elde etmek. Uygulama IP tabanlı bir koruma kullanıyor gibi görünse de, arka plandaki yanlış bir mantık bu korumayı tamamen devre dışı bırakmamıza izin veriyor. Brute-force korumasının genel mantığı Brute-force saldırılarını engellemek için genelde iki yöntem uygulanır: Çok fazla hatalı deneme olu
Songül ÖZÜGÜRLER
28 Nis


HTTP Basic Authentication
HTTP Basic Authentication User rate limiting Web sitelerinin brute-force saldırılarını önlemek için kullandığı yöntemlerden biri de kullanıcı bazlı istek sınırlandırmadır. Bu yöntemde, kısa bir süre içinde çok fazla giriş denemesi yapılması IP adresinizin engellenmesine neden olur. Genellikle bu engel şu yöntemlerden biriyle kaldırılabilir: Belirli bir süre geçtikten sonra otomatik olarak Bir yönetici tarafından manuel olarak Kullanıcı tarafından bir CAPTCHA doğrulamasını baş
Songül ÖZÜGÜRLER
28 Nis


Portswigger : Account locking (Hesap Kilitleme)
Portswigger : Account locking (Hesap Kilitleme) Web sitelerinin brute-force saldırılarını engellemek için kullandığı yöntemlerden biri, belirli şüpheli koşullar gerçekleştiğinde — genellikle art arda belirli sayıda hatalı giriş denemesi yapıldığında — hesabı kilitlemektir. Normal giriş hatalarında olduğu gibi, sunucunun “hesap kilitlendi” şeklindeki yanıtları da saldırganların kullanıcı adı enumerate etmesine yardımcı olabilir. Hesap kilitleme, belirli bir kullanıcıyı hedef a
Songül ÖZÜGÜRLER
28 Nis


Portswigger : Flawed two-factor verification logic
Portswigger : Flawed two-factor verification logic Bazen 2FA (two-factor authentication) adımlarındaki hatalı mantık nedeniyle, kullanıcı ilk giriş adımını doğru şekilde tamamlasa bile, web uygulaması ikinci adımı yapan kişinin aynı kullanıcı olup olmadığını düzgün şekilde doğrulamaz. Örneğin kullanıcı ilk adımda normal kullanıcı adı ve şifresiyle giriş yapıyor: POST /login-steps/first HTTP/1.1 Host: vulnerable-website.com … username=carlos&password=qwerty Bu adım tamamlanınc
Songül ÖZÜGÜRLER
28 Nis


Portswigger Lab: Brute-forcing a stay-logged-in cookie
Portswigger Lab: Brute-forcing a stay-logged-in cookie PortSwigger’daki “Brute-forcing a stay-logged-in cookie” labine başladım ve bu yazıda hem mantığını hem de çözüme giden yaklaşımı paylaşacağım. Bu lab, kullanıcı tarayıcıyı kapatsa bile oturumun açık kalmasını sağlayan bir “stay logged in” çerezinin nasıl brute-force edilebileceğini gösteriyor. Uygulamada kullanılan çerez yapısı zayıf olduğu için, doğru kombinasyonu tahmin ederek kurbanın hesabına erişmek mümkün. Bizden i
Songül ÖZÜGÜRLER
28 Nis


Oturumu Açık Tutma
Oturumu Açık Tutma Bazı nadir durumlarda, çerez içinde hash’lenmiş bile olsa, bir kullanıcının gerçek parolasını düz metin olarak elde etmek mümkün olabilir. Bunun nedeni, internette yaygın parola listelerinin hash’lenmiş sürümlerinin bulunmasıdır. Eğer kullanıcının parolası bu listelerde yer alıyorsa, ilgili hash’i çözmek bazen sadece hash’i bir arama motoruna yapıştırmak kadar kolay olabilir. Bu durum, şifreleme yaparken salt kullanılmasının ne kadar kritik olduğunu açıkça
Songül ÖZÜGÜRLER
28 Nis
bottom of page




