Hoşgeldin Misafir

WEB | OWASP TOP 10 | Command Injection

Reisci

Reisci

Yerli Ve Milli Hacker
11 Mar 2020
6,569 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
OWASP TOP 10 | Command Injection


Command Injection açığı bir web uygulaması üzerinde alınan girdilerin kontrol edilmediği durumlarda web sayfasının çalıştığı sunucu üstünde
işletim sistemi komutları çalıştırmamıza yarayan bir açıktır.Zaafiyeti sömürmesi zor değildir. Uzak bağlantı alma,dosya ekleme,silme işlemlerini
komut enjekte ederek yapabiliriz. Nasıl yapıldığına bakalım.

PayHub çevrimiçi para transfer hizmeti sunan uygulamadır. Saldırganımız Bob işi yine üstlendi ve penetrasyon testi yapmaya başladı.

wed93vv.png


uygulama üzerinde araştırma yapan Bob iki adımlı doğrulama seçeneğinin olduğunu görür

pyv09l6.png


İki adımlı doğrulamayı aktif etmek için telefon numarasını girer.

fq4l1ut.png


Web proxy ile HTTP isteklerini incelemeye başlar. Web Proxynin ne olduğunu bilmiyorsanız Owasp ZAP adlı konumu inceleyebilirsiniz.

phd5i0l.png


Anlatıma devam etmeden gelin iki adımlı doğrulama uygulamasının kaynak kodlarını inceleyelim.
Gördüğünüz gibi API_URL ile phoneNumber değişkeni ile birleştirilerek curl ile çağrılıyor.

qwwpzsv.png


HTTP isteklerini düzenleyerek kod çalıştırmayı deniyor saldırganımız telefon numarasının ardından 2-666-777-8888;xxx herhangi bir komut gönderiyoruz
ve HTTP response(yanıt) tarafında command not found hatası dönderdiğini görüyoruz.

5hzgyxu.png


anlamlı bir komut gönderdiğimizde çalıştırdığını görüyoruz. cat /etc/password komutuyla etc dizini altındaki password dosyasının içerisini ekrana
bastırıyoruz.İstediğimiz komutu enjekte etmiş olduk command injection açığını bu şekilde sömürmeye çalıştık

smut37e.png


kaynak kodların fixlenmiş halini inceleyelim boolean tipinde oluşturulan bir method ile gönderilen telefon numarası PHONE_REGEX stringi ile
karşılaştırılarak filtreleme işlemi yapıyoruz.

unix tabanlı sistemlerde komut enjekte ederken ”;” , “&”, “&&”, “ | “ ifadelerini kullanabilirsiniz.

rmq7fv9.png


yukarıda gördüğünüz gibi çıktılar aldık bu çıktıların birbirlerinden farklarını araştırıp kendiniz deneyerek deneyimleyebilirsiniz.