Admin Panel Bypass

Rochelle

Üye
3 Ara 2022
212
81
Nijerya
giphy.gif


Merhaba, ben crackmeci bu konumda sizlere hackle uğraşan herkesin hayatı boyunca en az bir kere kullandığı açıklardan biri olan bypass açığının oluşumundan ve nasıl önlenebileceğinden bahsedeceğim.

1.png


Öncelikle bypass açığı php dilindeki veri tabanı sorgularının güvensiz bir ortamda kurulmasından oluşmaktadır. Yani bir çeşit "sql injection" açığıdır

59nyoy8.png


Şimdi bu fotoğraftaki $check adlı değişkene bakmanızı istiyorum. Bu sorguda hiçbir süzme işlemi uygulanmadığı için içine ne yazılırsa yazılsın değişkenleri filtrelemiyor.
Bu sebeple ben içinde mysql sorgusu çalıştırabilirim.

23dmajb.png

Yukarıdaki mysql tablosunda da görüldüğü üzere normalde kullanıcı adımız da şifremiz de admin. Şimdi giriş yapalım bu bilgilerle .

tp9eu0o.png

Sayfa yenilendiği için iki fotoğraf koymak zorunda kaldım
jquery(ajax) kullanabilirdim ama bu konuda gerek yok ama görüldüğü üzere giriş yapıldı. Şuan veritabanındaki tek üye admin ancak ben bu $check sorgusunun içinde sql komutları yazabileceğim için hem kullanici_adi hem de kullanici_sifre sütunun değerinin herhangi bir şey olmasını sağlayabilirim. Nasıl mı? Tam olarak şöyle

PHP:
'=' 'or'

Şimdi bu yazı sql dilinde bir nevi herhangi bir şey olabilir gibisinden bir anlama tekâmül ediyor. Şimdi bunu deneyelim.

g4f0avj.png

Görüldüğü üzere veritabanında
'=' 'or' diye bir üye olmamasına rağmen girişimiz başarılı oldu.

Peki bunu nasıl engelleyebiliriz? Bunu engellemek için dümdüz sorgu yerine soru işaretli sorgu kullanabiliriz çünkü o çeşit sorgular sql komutlarını ve daha bir çok şeyi filtreliyor.

Kodumuzun düzenlenmiş hali :
iqeg55k.png


Evet sizin de dikkatinizi çektiği üzere deminki query
arrow(ok) fonksiyonu yerine prepare arrow(ok) fonksiyonunu kullandık çünkü soru işaretli sorgular sadece prepare metodunda var ne yazık ki query metodunda yok. Bir de alt satıra execute diye bir arrow(ok) fonksiyonu daha ekledik bu fonksiyon yardımıyla da $db->prepare(...) ifadesine ? yerlerindeki değerleri atıyoruz. Soru işaretlerini Türkçemizdeki zamirler olarak düşünebiliriz. Şimdi deminki güvenlik testimizi bir daha deneyelim.

rkir28l.png


Görüldüğü üzere kayıtlı kullanıcımız hala çalışıyor bakalım açığımız ne durumda.

dme3vur.png

Evet fotoğraftan da görülebileceği üzere demin başarıyla giriş yapıldı şeklinde sonuç alırken şimdi giriş yapılırken bir hata oluştu şeklinde çıktı alıyoruz. Açığı kapatmayı başardık.

Bu konumun da sonuna geldim. Bu konumda
bypass açığı neden oluşur ve nasıl kapatılır öğrenmiş olduk.
Okuduğunuz için teşekkür ederim.
Hocam Bunu Sorgu Panellerde İndex basmak için Falan Yapılacak Versiyonunu Göstermeniz mümkünmüdür?
 

rootibo

Kıdemli Üye
13 Mar 2023
2,168
1,459
giphy.gif


Merhaba, ben crackmeci bu konumda sizlere hackle uğraşan herkesin hayatı boyunca en az bir kere kullandığı açıklardan biri olan bypass açığının oluşumundan ve nasıl önlenebileceğinden bahsedeceğim.

1.png


Öncelikle bypass açığı php dilindeki veri tabanı sorgularının güvensiz bir ortamda kurulmasından oluşmaktadır. Yani bir çeşit "sql injection" açığıdır

59nyoy8.png


Şimdi bu fotoğraftaki $check adlı değişkene bakmanızı istiyorum. Bu sorguda hiçbir süzme işlemi uygulanmadığı için içine ne yazılırsa yazılsın değişkenleri filtrelemiyor.
Bu sebeple ben içinde mysql sorgusu çalıştırabilirim.

23dmajb.png

Yukarıdaki mysql tablosunda da görüldüğü üzere normalde kullanıcı adımız da şifremiz de admin. Şimdi giriş yapalım bu bilgilerle .

tp9eu0o.png

Sayfa yenilendiği için iki fotoğraf koymak zorunda kaldım
jquery(ajax) kullanabilirdim ama bu konuda gerek yok ama görüldüğü üzere giriş yapıldı. Şuan veritabanındaki tek üye admin ancak ben bu $check sorgusunun içinde sql komutları yazabileceğim için hem kullanici_adi hem de kullanici_sifre sütunun değerinin herhangi bir şey olmasını sağlayabilirim. Nasıl mı? Tam olarak şöyle

PHP:
'=' 'or'

Şimdi bu yazı sql dilinde bir nevi herhangi bir şey olabilir gibisinden bir anlama tekâmül ediyor. Şimdi bunu deneyelim.

g4f0avj.png

Görüldüğü üzere veritabanında
'=' 'or' diye bir üye olmamasına rağmen girişimiz başarılı oldu.

Peki bunu nasıl engelleyebiliriz? Bunu engellemek için dümdüz sorgu yerine soru işaretli sorgu kullanabiliriz çünkü o çeşit sorgular sql komutlarını ve daha bir çok şeyi filtreliyor.

Kodumuzun düzenlenmiş hali :
iqeg55k.png


Evet sizin de dikkatinizi çektiği üzere deminki query
arrow(ok) fonksiyonu yerine prepare arrow(ok) fonksiyonunu kullandık çünkü soru işaretli sorgular sadece prepare metodunda var ne yazık ki query metodunda yok. Bir de alt satıra execute diye bir arrow(ok) fonksiyonu daha ekledik bu fonksiyon yardımıyla da $db->prepare(...) ifadesine ? yerlerindeki değerleri atıyoruz. Soru işaretlerini Türkçemizdeki zamirler olarak düşünebiliriz. Şimdi deminki güvenlik testimizi bir daha deneyelim.

rkir28l.png


Görüldüğü üzere kayıtlı kullanıcımız hala çalışıyor bakalım açığımız ne durumda.

dme3vur.png

Evet fotoğraftan da görülebileceği üzere demin başarıyla giriş yapıldı şeklinde sonuç alırken şimdi giriş yapılırken bir hata oluştu şeklinde çıktı alıyoruz. Açığı kapatmayı başardık.

Bu konumun da sonuna geldim. Bu konumda
bypass açığı neden oluşur ve nasıl kapatılır öğrenmiş olduk.
Okuduğunuz için teşekkür ederim.
aradigim konu elinize saglik
 
Ü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.