Dosya Dahil Etme ve İsteğe Bağlı Kod Yürütme Nedir? - MalCare
Yayınlanan: 2023-04-13Dosya Ekleme ve Keyfi Kod Yürütme: Bu ayın başlarında, WordPress üzerine kurulu bir uçak bileti web sitesi saldırıya uğradı ve yüzbinlerce ziyaretçinin kişisel verileri açığa çıktı. Bilgisayar korsanlarının neden bilgisayar korsanlığı yaptığıyla ilgili daha önceki bir gönderide , bilgisayar korsanlarının veri çalma, spam e-postalar gönderme, hatta kendi ürünlerini sıralamak için siyah şapka SEO teknikleri kullanıyor olabilecekleri (önerilen okuma - ilaç hackleme) vb. dahil olmak üzere bilgisayar korsanlarının bilgisayar korsanlığının neden tüm nedenlerini tartıştık.
Bilgisayar korsanlarının bir web sitesini nasıl hacklediğini öğrenmek, onları önlemenin anahtarıdır, bu nedenle önceki bir makalede WordPress web sitelerinde yapılan en yaygın hack saldırılarını listeledik.
Yaygın hack saldırılarından bahsettiğimizde, kaba kuvvet saldırılarını düşünmeniz çok olasıdır. Ancak, dosya ekleme ve rastgele kod yürütmenin aynı zamanda WordPress web sitelerinde yapılan en yaygın saldırı saldırılarından biri olduğunu biliyor muydunuz? Bu yazıda, bu saldırıları ayrıntılı olarak anlamak için biraz daha derine ineceğiz.
Bu saldırıların nasıl çalıştığını anlamak için bilmeniz gereken ilk şey PHP dosyalarını içermesidir.Nedenini merak ediyor olmalısın? Bunun nedeni, hem Dosya Dahil Etme hem de Keyfi Kod Yürütme saldırılarının PHP dosyalarını kullanmayı içermesidir.
Ama bir PHP dosyası nedir? Bir mutfak dolabı düşünün. Dolabın içinde şeker, tuz, baharat, mutfak eşyaları gibi bir dizi eşya var. Bu eşyaların her birinin mutfakta hizmet etme amacı var.Bir PHP dosyası bir dolaptır ve dosyaların içindeki kodlar, bilgisayar korsanının istediği belirli işlevlerin yürütülmesini sağlayan öğelerdir.Bilgisayar korsanlarının, örneğin JPEG veya PDF dosyası gibi diğer dosyalara bir PHP dosyası yüklemeyi tercih etmelerinin nedeni budur. JPEG ve PDF dosyaları çalıştırılamaz, yani bilgisayar korsanları bu dosyaları herhangi bir işlevi yürütmek için kullanamaz. Kişi onları yalnızca okuyabilir (yani görüntüleyebilir). Saldırıya uğramış bir sitede herhangi bir değişiklik yapmak için kullanılamazlar.
Web sitenizin sunucusuna bir PHP dosyası yükleyen bir bilgisayar korsanı, onu web sitenizde her şeyi yapmak için kullanabilir. İşte bu nedenle PHP dosyaları, Dosya Dahil Etme ve Keyfi Kod Yürütme saldırılarını çalıştırmak için kullanılır.
Dosya Dahil Etme Saldırısı nedir?
Bunun gibi karmaşık bir web sitesi saldırısını anlamanın en iyi yolu, gerçek bir senaryoyu örneklemektir. Diyelim ki kurumunuz için bir web sitesi işletiyorsunuz ve sitenin adı college.com. Yakın tarihli bir üniversite etkinliği sırasında çekilmiş fotoğrafları yayınlayabilmeleri için birkaç öğrencinin siteye erişmesine izin veriyorsunuz. Birisi verdiğiniz erişimi kötüye kullanır ve web sitesine kötü amaçlı bir PHP dosyası (hack.php adlı) yükler. Amaç, kolej web sitelerinin kontrolünü ele geçirmektir. Öğrenci kötü amaçlı PHP dosyasını yüklediğinde, varsayılan olarak Yükleme klasöründe depolanır.WordPress'in temel yapısını bilen herkes,yüklenen bir dosyanın nereye gittiğini bilir.

Dosya, bilgisayar korsanının dosyayla uzaktan etkileşim kurmasını sağlayan bir kapı gibi davranır. Bilgisayar korsanının site üzerinde hala kontrolü olmadığını, sadece iletişim için bir penceresi olduğunu unutmayın. Anlamayı kolaylaştırmak için A kişisinin izin verilmeyen bir ülkeye gitmek istediğini hayal edin. Bu yüzden bir ajan, B kişisi gönderir. A kişisi bilgisayar korsanıdır, ülke üniversitenin web sitesini temsil eder ve B kişisi hack.php dosyasıdır.
Üniversite web sitesine yüklenen PHP dosyaları —-> Dosya web sitesi sunucusunda saklanır
B kişisi yalnızca birkaç konuda eğitim almıştır ve ancak bu kadarını yapabilir. Yani A kişisinin ona bundan sonra ne yapması gerektiği konusunda talimat vermesi gerekiyor. Aynı şekilde, PHP dosyası bir iletişim penceresi oluşturur ve ardından bilgisayar korsanından daha fazla komut bekler.
Hack.php'nin siteye daha fazla dosya yüklenmesini sağlayacak şekilde oluşturulduğunu varsayalım. Bilgisayar korsanı, web sitesi sunucusunda zaten mevcut olan hack.php'yi kullanarak yükleyeceği bir dosya (adlı control.php) oluşturur. Yeni dosya - control.php, bilgisayar korsanının web sitesine tam erişime sahip olmasını sağlayacaktır. Control.php dosyasını siteye yüklemek için hack.php dosyasının sağladığı pencereyi kullanır.Control.php dosyasının web sitesi sunucusunda zaten mevcut olan bir dosya (hack.php) kullanılarak yüklenmesi işlemine Yerel Dosya Dahil Etme adı verilir .

Yerel Dosya Yürütmenin harika bir örneği, Easy Forms for MailChimp WordPress eklentisinde (v 6.0.5.5) gözlemlenen güvenlik açığıdır . Web sitesi sahipleri, MailChimp eklentisini kullanarak WordPress sitelerine farklı türde formlar ekleyebilir. Bir güvenlik açığı, bilgisayar korsanlarının MailChimp formunu kullanarak bir PHP dosyasını bir web sitesi sunucusuna yüklemesine izin verdi.Dosya web sitesi sunucusunda depolandıktan sonra, bilgisayar korsanları onlarla iletişim kurabildi ve sunucuyu kontrol etmelerini veya siteye çeşitli şekillerde zarar vermelerini sağlayacak kodları çalıştırabildi.
İşte bir senaryo: Üniversite web sitesinde kurulu bir güvenlik duvarı vardır ve bu nedenle bilgisayar korsanı, control.php dosyasını yükleyemez. Başka bir ayrı dosya yükleyemese de bir dosyayı 'ekleyebilir'. Bu, kolej web sitesi sunucusunda zaten mevcut olan hack.php dosyasına bir dosya ekleyebileceği anlamına gelir. Bilgisayar korsanı control.php dosyasını yükleyebilseydi, web sitesi sunucusu dosyayı okur ve bilgisayar korsanının istediği her şeyi yapmasını sağlayacak olan içindeki kodu çalıştırırdı. Ancak dosyayı karşıya yükleyemediği için, sunucunun control.php dosyasını okumasını sağlamak için başka yollar bulması gerekecektir. Bir bilgisayar korsanı tarafından oluşturulan bir yol çevrimiçi olarak mevcuttur ve kolej web sitesinin sunucusu bunu okuyabilmelidir. Bu nedenle, bilgisayar korsanı bir yol oluşturur ve kolej web sitesi sunucusunun okuyabilmesi için bunları çevrimiçi olarak kullanılabilir hale getirir. Sunucu daha sonra yoldan alınan kodu çalıştırmaya başlar ve kod, bilgisayar korsanının sitenin tam kontrolünü sağlayacak şekilde yazıldığından, bilgisayar korsanı artık üniversitenin web sitesini kontrol eder. Sunucunun uzak bir dosyayı okumasını sağlama işlemine Uzak Dosya Dahil Etme adı verilir.

TimThumb güvenlik açığı vakası, Uzak Dosya Dahil Etmenin popüler bir örneğidir. TimThumb, bir WordPress sitesindeki görüntülerin kolayca düzenlenmesine izin veren bir WordPress eklentisidir. imgur.com ve flickr.com gibi resim paylaşım sitelerinden temin edilen resimleri herkesin kullanmasına olanak sağladı. TimThumb, imgur'u geçerli bir site (veya beyaz listeye alınmış) olarak tanır. Bu kriterden yararlanan bilgisayar korsanları, http://www.imgur.com.badsite.com gibi geçerli bir siteden bahseden URL'ler içeren dosyalar oluşturur.Eklenti, yukarıda bahsettiğimiz gibi bir URL'ye sahip kötü amaçlı bir dosya yüklediklerinde, dosyanın geçerli bir web sitesinden geldiğine inanarak kandırılır.Ve web sitesinin sunucusuna kötü niyetli bir dosyanın yüklenmesine izin verir. Bir eklentideki bir güvenlik açığından yararlanarak web sitesi sunucusunun dışından kötü amaçlı bir dosya dahil etme sürecinin tamamı, Uzaktan Dosya Dahil Etmedir. Kötü amaçlı PHP dosyası web sitesi sunucusunda depolandıktan sonra, bilgisayar korsanları istedikleri eylemleri gerçekleştirmek için onunla iletişim kurabilirler.
Keyfi Kod Yürütme Saldırısı nedir?
Artık uzak ve Yerel Dosya Dahil Etmenin ne olduğunu bildiğimize göre, devam edelim ve Arbitrary Code Execution'ın ne olduğunu anlamaya çalışalım. Dosya Dahil Etme ve isteğe bağlı kod dahil etme birbiriyle ilişkilidir. Herhangi bir Dosya Dahil Etme durumunda, bilgisayar korsanlarının amacı web sitesinde rastgele bir kod yürütmektir. Bilgisayar korsanının kolej web sitesine bir hack.php yüklediği ve ardından hack.php yardımıyla control.php'yi yüklediği Yerel Dosya Dahil Etme örneğine geri dönelim.Keyfi Kod Yürütme ifadesi, bir bilgisayar korsanının saldırıya uğramış bir web sitesinde istediği herhangi bir komutu yürütme yeteneğinin bir açıklamasıdır.PHP dosyaları (hack.php ve control.php) web sitesi sunucusunda yüklendikten sonra, bilgisayar korsanı istediği herhangi bir kodu çalıştırabilir. Yüklediği dosyalardan herhangi bir kodu yürütme işlemine Keyfi Kod Yürütme denir.
Hack'ler karmaşıktır. Bu yazımızda basit olarak anlatmaya çalıştık ancak size anlamsız gelen bir kısım olursa okuyucularımızdan bize yazmalarını rica ediyoruz . Bir sonraki gönderide, Siteler Arası Komut Dosyası Çalıştırma (XSS) adlı bir WordPress sitesine yapılan başka bir yaygın saldırı saldırısını tartışıyoruz. Bir göz at.