Konuyu Açan
#1
Boolean-based SQL injection testleri, siber güvenlik pratiğinin temel taşlarından biridir ve çoğu zaman otomatik araçlar kadar manuel stratejileri de gerektirir. Bu konuyu paylaşırken şu noktaları tartışalım:
1) Temel mantık ve erken tespit
Bir girdinin sorgu sonucunu etkilemek için true/false durumlarını kullanırız. Örneğin, bir kullanıcı adını sorgularken “' OR 1=1 --” gibi bir enjeksiyon sınamasını düşünürüz. Amaç, sistemin yanıtlarındaki ufak farkları yakalamak ve hangi noktada hata veya zaman farkı oluştuğunu belirlemek. Zaman tabanlı testler de bu kategoriye girer: sorgunun çalışma süresini uzatarak davranış farkını ölçmek.
2) Girdi türleri ve kontekst
3) Zaman farkı ve mantık farkı analizi
4) Güvenlik ve etik uyarılar
Bu testler yetkisiz hedeflere uygulanırsa yasa dışı olabilir. Kapsamlı izinler, hedefin güvenlik politikaları ve kayıtlı test planı olmadan uygulanmamalıdır. Testleri kaydetmek, tekrar edilebilir sonuçlar elde etmek ve sızdırılabilir logları güvenli bir şekilde temizlemek gerekir.
5) Uygulama örnekleri ve araçları
Bu konudaki deneyimlerinizi, hangi senaryolarda hangi sonuçları gördünüz ve hangi güvenlik önlemleri en etkili oldu konusunda paylaşabilir misiniz? Ayrıca, söz konusu testleri güvenli bir şekilde yürütmek için hangi metodoloji ve belgeler işinize yarıyor?
1) Temel mantık ve erken tespit
Bir girdinin sorgu sonucunu etkilemek için true/false durumlarını kullanırız. Örneğin, bir kullanıcı adını sorgularken “' OR 1=1 --” gibi bir enjeksiyon sınamasını düşünürüz. Amaç, sistemin yanıtlarındaki ufak farkları yakalamak ve hangi noktada hata veya zaman farkı oluştuğunu belirlemek. Zaman tabanlı testler de bu kategoriye girer: sorgunun çalışma süresini uzatarak davranış farkını ölçmek.
2) Girdi türleri ve kontekst
- Formlar ve URL parametreleri: login formları, arama kutuları, filtreler.
- Hata bazlı kontrastlar: veritabanı hatalarının ağrılığı farklı dillerde veya sürümlerde farklılık gösterebilir; bu nedenle hata mesajlarının varyasyonlarını takip etmek gerekir.
- Çoklu tablolı enjeksiyonlar ve alt sorgular: basit OR 1=1 testlerinden daha karmaşık ifadelerle netleşebilir.
3) Zaman farkı ve mantık farkı analizi
- Zaman tabanlı testlerde, normal yanıt ile potansiyel enjeksiyon yanıtı arasındaki süre farkını ölçmek önemlidir. Ayrıntılar: zaman farkı milisaniye bazında, ağ gecikmesiyle sinir bozucu olmadan tespit edilmelidir.
- Mantık tabanlı testlerde, dönen veri miktarındaki farklılıklar veya sayısal sonuçların varlığı/yokluğu üzerinden karar verilir.
4) Güvenlik ve etik uyarılar
Bu testler yetkisiz hedeflere uygulanırsa yasa dışı olabilir. Kapsamlı izinler, hedefin güvenlik politikaları ve kayıtlı test planı olmadan uygulanmamalıdır. Testleri kaydetmek, tekrar edilebilir sonuçlar elde etmek ve sızdırılabilir logları güvenli bir şekilde temizlemek gerekir.
5) Uygulama örnekleri ve araçları
- Temel boolen testleri için URL veya form girdilerinde küçük, güvenli sınamalar düşünün.
- Zaman tabanlı testler için farklı uç değerler deneyebilir, cevap süresindeki sapmaları not edebilirsiniz.
- Raporlama aşamasında, hangi girdiyle hangi yanıtın alındığını net olarak belirtin ve önerilen düzeltmeleri ekleyin.
Bu konudaki deneyimlerinizi, hangi senaryolarda hangi sonuçları gördünüz ve hangi güvenlik önlemleri en etkili oldu konusunda paylaşabilir misiniz? Ayrıca, söz konusu testleri güvenli bir şekilde yürütmek için hangi metodoloji ve belgeler işinize yarıyor?
