Discussion

LFI/RFI Tespit Scripti Yazmak

Started by Furko · 08 Dec 2025 23:40 · 47 Views · 0 Replies
Thread Starter #0
Local File Inclusion (LFI) ve Remote File Inclusion (RFI) açıkları, web uygulamalarında ciddi güvenlik sorunlarına yol açar. Bu açıkların tespiti için etkili ve güvenilir bir script yazmak, siber güvenlik uzmanları için büyük önem taşır. İlk olarak, scriptin hangi programlama dili ile geliştirileceğine karar vermek gerekir. PHP, Python ve Ruby gibi diller sıklıkla tercih edilir. Bu diller, HTTP taleplerini işleme, dosya içeriği çekme ve hata mesajlarını analiz etme kapasitesine sahiptir. Ayrıca, scriptin hem hızlı tarama yapması hem de ayrıntılı sonuçlar sunması hedeflenmelidir. Script, kullanıcıdan hedef URL’yi alarak, farklı parametreler üzerinde deneyler yapar, örneğin, dosya yolu üzerinden çeşitli dizin geçiş saldırılarını dener. Böylece potansiyel LFI veya RFI sonuçları ortaya çıkar.

LFI ve RFI Açıklarının Temel Farkları


Local File Inclusion ve Remote File Inclusion açıkları benzer mantıkta olsa da farklı riskler taşır. LFI, uygulamanın kendi dosya sistemi içinde yer alan dosyaları yüklemesini sağlar. Bu nedenle saldırganlar sistemdeki hassas dosyalara erişebilir. RFI ise uzaktaki kötü amaçlı sunucudan dosya dahil edilmesine izin verir. Bu da saldırganın zararlı kodları doğrudan sunucuya yüklemesini mümkün kılar. Tespit scripti yazarken bu farklılıkları göz önünde bulundurmak gerekir. LFI için genellikle yerel dosya yolları denenirken, RFI için ise uzak URL’ler test edilir. Bu nedenle script üzerinde farklı test modülleri oluşturmak hem doğruluğu artırır hem de gereksiz trafiğin önüne geçer.

HTTP Parametrelerinin Test Edilmesi


LFI ve RFI zafiyetlerinin en yaygın kaynakları, URL ya da POST verilerindeki parametrelerdir. Tespit scripti, bu parametreleri otomatik olarak belirleyip hedef URL üzerinden çeşitli payload’lar gönderir. Örneğin "file", "page", "include" gibi isimler taşıyan parametreler daha dikkatli incelenir. Parametre içeriklerine dosya yolu manipülasyonları uygulanır; "../" gibi dizin atlama sembolleri eklenir. Ayrıca uzak adresler içeren URL’ler sistematik olarak denenir. Script, sunucudan dönen yanıtları analiz ederek hata mesajları ya da olağandışı içerikler arar. Bu yöntem sayesinde gerçek bir zafiyet tespiti sağlanabilir.

Hata Mesajlarının ve Yanıt Kodlarının Analizi


Tespit sürecinde gelen yanıtların dikkatle incelenmesi kritik öneme sahiptir. LFI ve RFI deneyleri genellikle hatalı dosya yolu veya uzaktan yüklenemeyen dosya nedeniyle sunucu tarafından hata mesajları döner. Bu mesajlar "failed to open stream" veya "No such file or directory" gibi olabilir. Ayrıca HTTP durum kodları da ipucu verir; 200 OK görünen fakat içerik farklı olan sayfalar, zafiyet işaretçisi olabilir. Script, bu hata ve yanıt kodlarını eş zamanlı takip etmeli ve belirli kalıpları tanımlayarak tespiti yüksek olasılıkla yapmalıdır. Bu sayede yanlış pozitif sonuçlar azaltılır ve tarama verimi artar.

Payload Listesi ve Test Senaryoları Oluşturma


Etkili bir tespit scripti, zengin bir payload kütüphanesine dayanır. Dizin atlama kombinasyonları, farklı dosya uzantıları ve kodlama çeşitleri denemelidir. Örneğin, "../etc/passwd", "%2e%2e/%2e%2e/etc/passwd" veya "http://evil.com/shell.txt" gibi. Bununla birlikte, farklı web sunucusu ve programlama ortamlarına göre senaryolar geliştirmek gerekir. Bazı sunucular UTF-8 kodlaması ile dosya yollarını farklı anlar. Script, bu çeşitlilikte payload’ları sıra ile denemeli ve elde edilen sonuçları organize etmelidir. Ayrıca, testlerin gereksiz ya da tekrarlı olmaması için mantıklı bir sıraya göre ilerlemek, performansı olumlu etkiler.

Başarı Ölçütleri ve Raporlama


Hazırlanan tespit scriptinin etkinliği, testler sırasında elde ettiği verilerle ölçülür. Script, başarılı denemeleri açık ve anlaşılır şekilde raporlamalı, örneğin potansiyel güvenlik açığının tam URL’si ve kullanılan payload’ı göstermelidir. Bu rapor, güvenlik ekiplerinin hızlıca müdahale etmesi için yol gösterir. Ayrıca, yanlış pozitiflerin ayıklanmasına da olanak sağlar. Başarı kriterleri arasında hata mesajlarının doğruluğu, tarama hızı ve kapsamlı payload testi vardır. Sonuç olarak, iyi tasarlanmış bir script zararlı dosya çalıştırma veya bilgi sızıntısını önlemek için önemli bir araç olur.

Scriptin Güncellenmesi ve Geliştirilmesi


Güvenlik açıkları sürekli değiştiği için yazılan scriptin de güncel tutulması gerekir. Yeni keşfedilen LFI/RFI teknikleri ve farklı web platformlarına uygun testler eklenmelidir. Kullanıcı geri bildirimleri ve gerçek dünyadaki testler doğrultusunda script optimize edilmelidir. Ayrıca, otomatik güncelleme mekanizmaları entegre edilerek güncel payload listeleri alınabilir. Bu, tespit oranını yükseltir. Son olarak, scriptin yorum satırları ve kullanım kılavuzu hazırlanarak hem geliştirici hem de kullanıcı dostu olması sağlanmalıdır. Böylece güvenlik uzmanlarının işi kolaylaşır ve sonuçların kalitesi artar.

You must be logged in to reply.

0 quotes selected