[PentesterLab] Web For Pentester – Code & Commands Injections

PwnLab.Me

Admin
Katılım
21 Ocak 2024
Mesajlar
202
Tepkime puanı
9
Puanları
18
Okan Köse tarafından yazılmıştır.

[TR] [PentesterLab] Web For Pentester – Code & Commands Injections​

Code & Commands Injections

Code & Commands Injections



PentesterLab-Web For Pentester serimize devam ediyoruz.

Bu yazımızda Code & Commands Injections örneklerini inceliyelim.

Code Injections 1. Örnek


Code Injection zafiyeti mantık olarak SQL Injections zafiyetine çok benzer. Kullanıcıdan alınan girdilerin kontrol edilmemesinden oluşan bir zafiyet çeşitidir.

Nasıl SQL Injection zafiyetinde girdi olarak SQL kodları kullanıyorsak, Code Injectıon zafiyetinde de kullanılan programlama dilinde kodlar verilir.

İlk örneğimizi açtığımızda bizleri böyle bir sayfa karşılıyor.

Code & Commands Injections

Code & Commands Injections

Burada name parametresine verilen değer ekrana yansımakta.Bu değerimizin sonuna ve ; yazarak ilk ifadeyi sonlandıralım ve kodlarımızı yazalım.

“; echo “ PwnLabMe”;//

Girdimizin sonundaki // ifadesi bizi syntax hatasından kurtarıyor ve ekrana Hello hacker PwnLabMe yazdığını görüyoruz.

Code & Commands Injections

Code & Commands Injections

Buna benzer olarak PHP’nin system fonksiyonunu kullanarak dizin içerisindeki dosyaları listeleyebiliriz.

“;system(“ls”);//

Code & Commands Injections

Code & Commands Injections

Code Injections 2. Örnek


İkinci örneğimize baktığımızda kullanıcı listesini görüyoruz.

Code & Commands Injections

Code & Commands Injections

Usort işlevi, çıktıyı kullanıcı tarafından kontrol edilen bilgilere göre sıralamak için işlevi dinamik olarak oluşturmak üzere create_function işleviyle birlikte yaygın olarak kullanılır.

Ancak bir filtreleme yapılmazsa kodun yürütülmesine yol açabilir.

);}system(‘ls’);%23

Code & Commands Injections

Code & Commands Injections

Ya da );}system(‘cat /etc/passwd’);//

Code & Commands Injections

Code & Commands Injections

Code Injections 3. Örnek

Code & Commands Injections

Code & Commands Injections

Burada extra bir durum söz konusu. Burada php’nin preg_replace() fonksiyonu kullanılmış. Bu fonksiyon kullanımı şu şekilde:

<?php

echo preg_replace($_GET[“pattern”], $_GET[“new”], $_GET[“base”]);

?>




preg_replace() => Belirli bir dizedeki bir desenin (veya bir desen dizisinin) eşleşmelerinin bir alt dizeyle (veya bir alt dizeler dizisi) değiştirildiği bir dize döndürür. Preg_replace_eval (/ e) hakkında detaylı araştırma yapabilirsiniz.

phpinfo()&pattern=/lamer/e&base=Hello lamer

Code & Commands Injections

Code & Commands Injections

Burada regex ifadenin sonuna e yazmamız ile $new deki ifade PHP tarafından fonksiyon olarak yorumlanıyor.Bu şekilde istediğimiz phpinfo() fonksiyonunu çalıştırabildik.

Dizin içerisideki dosyaları görmek için;

system (“ls”)&pattern=/lamer/e&base=Hello lamer

Code & Commands Injections

Code & Commands Injections

Code Injections 4. Örnek


Code Injection da son örneğimiz de hacker’ yaptığımızda hata alıyoruz. Aldığımız bu hatadan

Code & Commands Injections

Code & Commands Injections

phpnin assert() fonksiyonunun kullanıldığını görebiliyoruz. Burada şu ifadeyi yazarak istediğimiz fonksiyonu çalıştırabiliriz.

’.system(“ls”);%23

Code & Commands Injections

Code & Commands Injections

Commands Injections 1.Örnek


İlk örneğimizi inceliyelim.

Code & Commands Injections

Code & Commands Injections

Commend Injectin zafiyetleri girdilerin kontrol edilmediği durumlarda ortaya çıkmaktadır.Şimdi örneğimizdeki URL’e ;ls komutunu girelim.

;ls

Code & Commands Injections

Code & Commands Injections

Bu örnek üzerinde herhangi bir kontrol yapılmadığı için istediğimiz komutu çalıştırabiliyoruz.

;cat /../../../../etc/passwd

Code & Commands Injections

Code & Commands Injections

Commands Injections 2.Örnek


Bu örneğimizde ;ls komutunu girdiğimizde aldığımız hatadan ıp kontrolünün yapıldığını anlıyoruz.

Code & Commands Injections

Code & Commands Injections

%0a karakteri ile alt satıra geçtiğimizde bu kontrolü geçiyoruz ve istediğimiz komutu çalıştırıyoruz.

%0acat /../../../../etc/passwd

Code & Commands Injections

Code & Commands Injections

Commands Injections 3.Örnek


Son örneğimizde de %0acat /../../../../etc/passwd girdisini verdiğimizde bir redirect(yönlendirme) olduğunu görüyoruz. URL’imiz yine ip=127.0.0.1 olarak kalmakta.

Code & Commands Injections

Code & Commands Injections

Bu durumda tarayıcı üzerinden verdiğimiz girdilerin çalışıp çalışmadığını göremiyoruz.Ne olduğunu anlamak için GET isteği gönderelim.

Code & Commands Injections

Code & Commands Injections

Gelen sonuçta etc/passwd dosyası yazdırılmış oldu.

Code & Commands Injections

Code & Commands Injections
 
Moderatör tarafında düzenlendi:
Geri
Üst