- 17 Eyl 2023
- 1,349
- 623
Merhabalar Ben LordSUCCESS, Bugünki konumuz Command Injection zafiyeti
Command Injection Zafiyeti Nedir
Command Injection, kullanıcı tarafından sağlanan verilerin doğru bir şekilde filtrelenmediği durumlarda ortaya çıkan bir web güvenlik açığıdır. Saldırganlar, bu açığı kullanarak hedef uygulamanın sistem komutlarını etkilemek veya çalıştırmak için kötü niyetli komutlar ekler. Bu, yetkisiz erişime, veri sızıntısına ve hatta sistemlerin tamamen ele geçirilmesine yol açabilir.
Command Injection Zafiyeti Nasıl Kullanılır
Command Injection zafiyeti, genellikle bir web formu, arama kutusu veya başka bir giriş alanı aracılığıyla hedef uygulamaya kötü niyetli komutlar enjekte ederek kullanılır. Saldırganlar, bu giriş alanlarına normal bir kullanıcı girişi gibi görünen ancak aslında sistem komutlarını içeren veriler gönderirler. Eğer hedef uygulama bu girişleri doğru bir şekilde işlemezse ve doğrulama veya filtreleme yapmazsa, saldırganlar bu komutları etkili bir şekilde çalıştırabilirler.
Zafiyetin olabileceği ihtimalini göz önünde bulundurarak, bunu doğrulamamız gerekiyor, Bir IP adresi girerek test edeceğim.
Evet, Ping atabildik ancak hala zafiyetin varlığından emin değiliz. Bu nedenle, onu test etmek için bir kontrol daha yapalım.
Kullandığım komut şu şekilde: '192.168.1.104; ls'. Yani, IP adresini yazıp ardından komutu sonlandırarak o klasörde bulunan dosyaları listeliyorum, Şimdi ise back door oluşturalım yani sunucuyu kendimize bağlayalım.
Netcat aracını kullanrarak 443 portunu dinlemeye alıyoruz, Şimdi ise reverse shell bulalım, google'a reverse shell command yazalım
Önümüze gelen ilk siteye girelim ve shellimizi seçelim
Bu komutu kopyalıyoruz ve not deflerine yapıştırıyoruz, IP kısını kendi IP adresimiz olacak portumuz ise netcat'te dinlediğimiz porttur
Şimdi ls kullandığımız yeri silip bu shelli yapıştırıyoruz
Ping at'a tıklayıp netcat toolumuza bakalım
Evet, Bağlanmış ls komutunu kullanıp hangi dosyalar var onu görüyoruz, Başarılı bir şekilde back door (arka kapı) oluşturduk
Command Injection Zafiyeti Nasıl Önlenir
- Girişlerin Doğrulanması ve Filtrelenmesi: Kullanıcı girişleri, beklenen formata ve sınırlara uygun olmalıdır. Örneğin, bir IP adresi girişi bekleniyorsa, sadece geçerli bir IP adresi kabul edilmelidir. Ayrıca, kullanıcı girişlerinde özel karakterlerin (örneğin, ";" veya "|") kullanımı engellenmeli veya filtrelenmelidir.
- Güvenli API Kullanımı: Eğer bir uygulama başka bir servis veya API'yi çağırıyorsa, bu çağrılar güvenli bir şekilde yapılmalıdır. Güvenli API'ler kullanarak, doğrudan sistem komutlarını çalıştırmak yerine, daha güvenli ve belirli işlemleri gerçekleştirmek için API'leri kullanmak daha iyidir.
- Kısıtlı Yetkiler: Uygulamanın çalıştığı ortamda, uygulamanın yalnızca gerektiği kadar yetkiye sahip olması önemlidir. Örneğin, web uygulamalarının dosya sistemi erişimi gibi hassas işlemleri gerçekleştirmesi gerekmez. Uygulamanın çalışma ortamında minimum yetki ile çalıştırılması, olası etkileri sınırlayabilir.
- Güvenlik Testleri: Uygulamaların düzenli olarak güvenlik testlerine tabi tutulması önemlidir. Bu testler, potansiyel güvenlik açıklarını tespit etmek ve düzeltmek için yardımcı olabilir.
- Bilinçli Kod Yazma: Geliştiricilerin, güvenli kodlama prensiplerini ve en iyi uygulamaları takip etmeleri önemlidir. Kullanıcı girişlerinin güvenli bir şekilde işlenmesi ve yürütülmesi için doğru yaklaşımların benimsenmesi gerekmektedir.
Kullandığım Dosya;
PHP Dosyası --> VirüsTotal
Emeğe karşılık konuyu beğenip mesaj yazabilirsiniz, Okuyan Herkese Teşekkür Ederim.