Object Injection Nedir ? (Örnekli) // Qwx

Qwx

Kıdemli Üye
30 Nis 2012
2,728
13
Object Injection Nedir ?

Object Injection, saldırganın SQL enjeksiyon, DOS, Kod enjeksiyonu gibi çeşitli saldırılar gerçekleştirmesine yol açabilecek bir uygulama güvenlik açığıdır.

PHP nesne seri hale getirilmesine izin verdiğinden, saldırganlar geçici seri hale getirilmiş dizeleri savunmasız bir unserialize() çağrısına geçirebilir ve bu da uygulama kapsamına keyfi bir PHP nesnesi (nesneleri) enjeksiyonu ile sonuçlanabilir.

Object Injection Güvenlik Açığı Nasıl Oluşur ?


Kullanıcı tarafından sağlanan bir girdi sonrasında unserialize() PHP işlevine geçilmeden önce uygun bir şekilde sterilize edilmediğinde ortaya çıkmaktadır.


Object Injection İçin Alınacak Önlemler Nelerdir ?

Kullanıcı tarafından sağlanan bir girişde unserialize() işlevini kullanmamak.

Object Injection Örnek

php.jpg


Üç string tipi değişken içeren bir login, username, password ve role sınıflarımız bulunmaktadır. Ancak, flag.txt dosya içeriğini göstermeden önce bazı kontrolleri yapmak için seri hale getirilmemiş verilerin nasıl kullanıldığını görebiliriz.

Bayrak elde etmek için aşağıdaki koşul yerine getirilmelidir: 1337'nin role değişkeninden çıkarılmasından kaynaklanan $check değişkeni ADMIN metin dizisine eşittir. Daha sonra üzerinde çalışmamız gereken örnek nesneyi görebilmek için kod çalıştırılmalıdır.


1.jpg


Bu alıştırmanın çözümüne giden yolun role değişken baskısına değindiği bellidir. Hangi türü kullanmamız gerektiğini öğrenmek adına ilgili linki kullanabiliriz; https://php.net/manual/tr/types.comparisons.php

PHP'de bir metin dizesini 0 tamsayı değeriyle karşılaştırmanın sonucu TRUE'dur, bu nedenle role artık bir dize değilse ve 1337 (1337 - 1337 = 0) değerinde bir tamsayı olduğunda koşul yerine getirilir.


2.jpg

 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.