Python ile web uygulaması güvenlik testi
Kendi uygulamanda girdi noktalarını bulan, kontrollü fuzzing yapan ve OWASP açıklarını kanıtlayan araçları adım adım yazarsın.
Seviye 301 · 16 ders · 15 pratik lab
Dersler
Yüzeyi çıkarmak
- Bağlantıları izleyen küçük bir tarayıcı
- Formları ve parametreleri otomatik toplamak
- JavaScript dosyalarından gizli uç noktaları çıkarmak
- Kısa görev: uygulamanın tüm girdi noktalarını listele
Kontrollü fuzzing
- Fuzzer tasarımı: sözlük, kodlama, yanıt karşılaştırma
- asyncio ile hızlı ama nazik fuzzer
- Yanıt boyu, süre ve hata koduyla anormallik bulmak
- Kısa görev: arama parametresinde beklenmedik davranışı yakala
Açıkları kanıtlamak
- SQL enjeksiyonunu zaman ve boole farkıyla doğrulamak
- Yansıyan XSS’i güvenli bir işaretle sınamak
- SSRF’yi kendi dinleyicinle doğrulamak
- Dizin aşımını kanıtlayan kontrol
- Kısa görev: bulunan açığı kanıtla, düzeltmeden sonra tekrar sına
Raporlama ve kapanış
- İstek ve yanıtı kanıt olarak saklamak
- Önem, etki ve düzeltme önerisiyle bulgu raporu
- Bitirme görevi: laboratuvar uygulaması için kendi web güvenlik tarayıcın
Pratik lablar
- Uygulamanın girdi noktaları: Lab uygulamasını kapsam içinde kalarak gezen küçük bir tarayıcı yaz ve tüm formları ile parametreleri sayfa adresiyle birlikte listele.
- JavaScript’te saklı uç noktalar: Lab uygulamasının JavaScript dosyalarından API yollarını çıkaran bir betik yaz ve tarayıcının bulmadığı uç noktaları ayrıca işaretle.
- Kendini oturumdan atan tarayıcı: Çıkış bağlantısına tıklayıp oturumu kaybeden, sonsuz takvim sayfalarında dönen tarayıcıyı düzelt ve oturum açık kalarak tüm bölümleri gezdiğini göster.
- Arama kutusunda tuhaf davranış: Lab uygulamasının arama parametresine küçük bir sözlükten değerler gönderip yanıt boyu ve durum koduna göre beklenmedik yanıtları işaretleyen bir betik yaz.
- Hızlı ama nazik fuzzer: Lab uygulamasını aşırı yükleyen fuzzer’a eşzamanlılık sınırı ve geri çekilme ekle, uygulama yanıt sürelerinin bozulmadığını ve bulguların aynı kaldığını göster.
- Her yanıtı farklı sayfada anormallik: Her yanıtta zaman damgası ve rastgele belirteç değiştiği için yanlış alarm üreten fuzzer’a değişken alanları ayıklayan bir karşılaştırma ekle ve gerçek anormalliği bul.
- Yansıyan girdiyi güvenli işaretle doğrula: Kendi lab uygulamanda zararsız benzersiz bir işaret dizgisi göndererek hangi parametrenin kodlanmadan sayfaya yansıdığını bulan bir kontrol yaz.
- Boole farkıyla SQL enjeksiyonu doğrulama: Yetkili test kapsamında lab uygulamasının sıralama parametresinde doğru ve yanlış koşullu isteklerin yanıt farkını ölçerek açığı doğrula ve kanıt dosyasını kaydet.
- SSRF’yi kendi dinleyicinle kanıtla: Lab uygulamasının bağlantı önizleme özelliğinin sunucu tarafında istek yaptığını kendi lab dinleyicine gelen kayıtla kanıtla ve düzeltme sonrası tekrar sınayıp kapandığını göster.
- İstek-yanıt kanıtlarını sakla: Kontrollerinin her bulgusu için istek ve yanıtı gizli bilgileri maskeleyerek zaman damgalı dosyalara kaydeden bir kanıt modülü yaz.
- Düzeltme sonrası dizin aşımı testi: Oakmere Studios lab uygulamasının dosya indirme uç noktasında dizin aşımını kanıtlayan bir kontrol yaz, geliştiricinin yamasından sonra kodlanmış varyantlarla tekrar sına ve sonucu raporla.
- Kendi tarayıcından bulgu raporu: Gezinme, yansıyan girdi ve dizin aşımı kontrollerini tek araçta birleştir, lab uygulamasında çalıştır ve her bulguyu önem, etki ve düzeltme önerisiyle raporla.
- Oturum çerezinin bayraklarını denetle: Kendi lab uygulamana betikle giriş yap, dönen çerezlerde Secure, HttpOnly ve SameSite ayarlarını oku ve eksik olanları çerez adıyla raporla.
- Çıkıştan sonra oturum gerçekten kapanıyor mu?: Lab uygulamasında çıkış yapıldıktan sonra eski oturum belirtecinin hâlâ kabul edilip edilmediğini ve girişte belirtecin yenilenip yenilenmediğini sınayan bir denetim yaz, düzeltmeden sonra aynı denetimi yeniden çalıştır.
- İki kullanıcıyla erişim denetimi tablosu: Yetkili test kapsamında, lab uygulamasının API uç noktalarını iki ayrı test kullanıcısıyla çağıran ve bir kullanıcının diğerine ait kayda ulaşabildiği yerleri tabloya döken bir denetim yaz, bulguyu kanıtıyla raporla ve düzeltmeden sonra tablonun temiz çıktığını göster.
Kurs hakkında
Kendi uygulamanda girdi noktalarını bulan, kontrollü fuzzing yapan ve OWASP açıklarını kanıtlayan araçları adım adım yazarsın.
Ne öğreneceksin
- Yüzeyi çıkarmak
- Kontrollü fuzzing
- Açıkları kanıtlamak
- Raporlama ve kapanış
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 301 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.