THT DUYURU

Siber Güvenlik Siber Güvenlik ile alakalı araçların kullanımı, bilgi paylaşımı ve siber güvenlik eğitimi ile ilgili kaynakların paylaşıldığı alanımızdır.

Seçenekler

Object Injection Nedir ? (Örnekli) // Qwx

Qwx
Qwx - ait Kullanıcı Resmi (Avatar)
Yardımsever
Üyelik tarihi:
04/2012
Mesajlar:
2.734
Konular:
116
Teşekkür (Etti):
96
Teşekkür (Aldı):
613
Ticaret:
(0) %
14-10-2019 00:38
#1
Object Injection Nedir ? (Örnekli) // Qwx
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



Üç 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.




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.



---------------------
A hacker does for love what others would not do for money.
Xowly, M3m0ry Teşekkür etti.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler