• Sonuç bulunamadı

Web Uygulamaları Sızma Testi Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı

N/A
N/A
Protected

Academic year: 2022

Share "Web Uygulamaları Sızma Testi Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı"

Copied!
91
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Web Uygulamaları Sızma Testi

Türk Standardları Enstitüsü

Yazılım Test ve Belgelendirme Dairesi Başkanlığı Tarih

1

(2)

2

Giriş

Web Teknolojileri Standartları

Yetkilendirme

Bilgi Toplama ve Ayar Yönetimi

Girdi-Çıktı Alan Tespiti ve Manipülasyon Kimlik Denetimi

Sunum İçeriği

Oturum Yönetimi

İş Mantığı Hataları

(3)

3

Giriş

(4)

4

Giriş

• Black Box

• White Box

• Gray Box

Web Pentest Türleri

(5)

• Ticari olanlar

• Acunetix

• Netsparker

• Burp Suite Pro

• Ücretsiz olanlar

• ZAP

• WebScarab

Manuel

Hibrit

Otomatik - Ücretsiz

Araçlar - Ticari Araçlar

5

Giriş

Tarama Türleri

Zafiyet Tarama Araçları

(6)

6

Giriş

Recon. Mapping Discovery Exploit Reporting

Test Süreci (Test Metodolojisi)

(7)

7

Giriş

Saldırı Yüzeyleri

• Yanlış yapılandırma

• DOS

Sunucu

• Login sistemi

• Oturum yönetim sist.

• Fonksiyonel bozukluklar

Uygulama

• Sosyal mühendislik

Kullanıcı

(8)

8

Giriş

Açıklık Taslakları

OWASP CWE

(9)

9

Giriş

• Bir önceki sunumda hazırlanan taslaklardan raporlama yapılır.

Raporlama

(10)

10

Teknolojiler - Standartlar

(11)

11

İstemci – sunucu mimarisi Web tarayıcıları

DOM html http

URL, URI

Teknolojiler - Standartlar

RIA Uygulamalar

(12)

12

İstemci – Sunucu Mimarisi

(13)

13

İstemci – Sunucu Mimarisi

(14)

14

Web Tarayıcıları

• Firebug

Chrome

• Debugbar

IE

• Firebug

• Cookie Manager

• HttpFox

Firefox Safari Opera

Yandex Browser

(15)

15

HTML

• Hyper Text Markup Language

• Bir HTML dokümanına web sayfası denir.

• Bir HTML dokümanı HTML etiketlerinden oluşur.

• Her HTML etiketin bir anlamı var.

HTML Nedir?

(16)

16

HTML

• Tarayıcılar HTML etiketlerini göstermezler. Bu etiketleri yorumlayarak uygun içeriği gösterirler.

• HTML elements, tags, attributes

HTML Dokümanları Nasıl Tarayıcıda Görünür?

•<p>...</p>

•<img>...</img>

•<h1>...</h1>

•<span>...</span>

•<div>...</div>

•<head>...</head>

•<title>...</title>

(17)

17

HTML

• html dokümanları (web sayfaları) http ile İstemci -Sunucu arasında taşınır.

• İstemci bir web sayfasını Sunucudan ister, Sunucu da bu sayfayı istemciye (web tarayıcısına) html dokümanı olarak gönderir.

Html Sayfaları Nasıl Taşınır?

(18)

18

HTML

http

• Hyper Text Transfer Protocol

• http, Sunucu ve İstemci arasında verilerin taşınmasını sağlayan bir protokoldür.

• Burada veriden kasıt; html

sayfaları, resimler, videolar gibi sunucu ve istemci arasında

taşınabilecek her şeydir.

• SSL ve TSL sunucu ve istemci arasında http üzerinde aktarılan verilerin şifrelenerek iletilmesini sağlayan bir protokoldür.

• Web uygulamalarında güvenli

bağlantı için yaygın olarak SSL / TLS kullanılır.

• Bir http bağlantısının güvenliği SSL ile sağlanınca artık bağlantı https olarak adlandırılacaktır.

https/SSL

(19)

19

HTML

• http başlıkları, taleplerde ve cevaplarda dönen mesajların parçalarıdır.

• Bir http talebinin veya cevabının nasıl yorumlanacağını belirlerler.

• IETF tarafından RFC içinde bir standart haline getirilmiştir.

http Başlıkları

(20)

20

HTML

• http metotları sunucu ile istemci arasında iletilen veriler üzerinde işlem yapılmasını sağlar.

• GET, POST, PUT, DELETE, TRACE, OPTIONS, PATCH

http Metotları

(21)

21

HTML

http İsteği (http Request)

• Sunucuya GET metodu ile iletilen bir istek.

(22)

22

HTML

http İsteği (http Request)

• Sunucuya POST metodu ile iletilen bir istek.

(23)

23

HTML

http Cevabı (http Response)

• Sunucudan gelen bir cevap ve içindeki HTML etiketleri.

(24)

24

HTML

HTTP Bağlantılarında Araya Girme

• Web uygulamaları çalışırken sunucu ve istemci arasında HTTP ile sağlanan bağlantının arasına girilebilir.

• Bu iş için Local Proxy programları yada tarayıcı eklentileri kullanılır.

• Bu eğitimde Burp Suite Free uygulaması kullanılacak.

(25)

25

SSL/TSL

• SSL ve TSL sunucu ve istemci arasında HTTP üzerinde aktarılan verilerin şifrelenerek iletilmesini sağlayan bir protokoldür.

• Web uygulamalarında güvenli bağlantı için yaygın olarak SSL/TLS kullanılır.

• Bir HTTP bağlantısının güvenliği SSL ile sağlanınca artık bağlantı HTTPS olarak adlandırılacaktır.

• Test süreci içinde detaylı değinilecektir.

Nedir?

(26)

26

URL

• Uniform Resource Locator

• Genel anlamda internet ortamında, dar anlamda ise sunucuda olan bir kaynağın konumunu belirten ve karakterlerden oluşan ifadedir.

• Web uygulamaları için adresleme standartıdır.

Nedir?

• Uniform Resource Identifier

• Universal Document Identifier

• Her ikisi de URL için temel oluşturmuş isimlendirmelerdir.

URI-UDI

(27)

27

URL

scheme://host:port/path?parameter=value#fragment

http://www.bilguvenlig.gov.tr:80/arama.aspx?kelime=TEST#bookmark=2

scheme http, https,telnet, ftp…

host:port mail.google.com:80, www.turkiye.gov.tr path /, /index.html, /home/default.aspx

?parameter=value ?param1=val1&param2=val2…

#fragment #anchor

(28)

28

Giriş

Web Teknolojileri Standartları

Yetkilendirme

Bilgi Toplama ve Ayar Yönetimi

Girdi-Çıktı Alan Tespiti ve Manipülasyon Kimlik Denetimi

Neredeyiz?

Oturum Yönetimi

İş Mantığı Hataları

(29)

29

TEST SÜRECİ

(30)

30

Test Süreci

BİLGİ TOPLAMA VE AYAR YÖNETİMİ

GİRDİ-ÇIKTI ALANI TESPİTİ/MANİPÜLASYONU

KİMLİK DENETİMİ

YETKİLENDİRME

OTURUM YÖNETİMİ

İŞ MANTIĞI HATALARI

(31)

31

Bilgi Toplama ve Ayar Yönetimi

• Server ve teknoloji bilgisi

• Oturum bilgisi

• URL bilgisi

• http metod bilgisi

Bilgi Toplama ve Ayar Yönetimi

PORT VE SERVİS BİLGİSİ

• Versiyonları

• Algoritmaları SSL/TLS BİLGİSİ

UYGULAMA DİZİN YAPISI

YÖNETİCİ ARAYÜZÜ ERİŞİMİ

• Yardım ve hata sayfaları

• Unutuluş html açıklama satırları

• E-mail ve kullanıcı toplama

MİNİMUM BİLGİ PRENSİBİ AYKIRI DURUMLAR

YEDEKLENMİŞ VE UNUTULMUŞ DOSYALAR

• Google hacking

• ExploitDB

BİLİNEN AÇIKLIKLAR

(32)

32

Bilgi Toplama ve Ayar Yönetimi

• Request başlığı

http Başlıkları İnceleme

(33)

33

Bilgi Toplama ve Ayar Yönetimi

• Response başlığı

http Başlıkları İnceleme

(34)

34

Bilgi Toplama ve Ayar Yönetimi

• Nikto ile yapılan bir tarama.

http Başlıkları İnceleme

(35)

35

Bilgi Toplama ve Ayar Yönetimi

SSL Denetimi

• SSL’in ve TSL’in versiyonları düşük olmamalı.

• SSL de en az versiyon 3.0, TSL de ise en az versiyon 1.0 olmalı.

• SSL ve TSL algoritmaları güçlü olmalı.

• Bu sertifikalar geçerli otoritelerden alınmalı.

• Uygulama hassas veri iletiyorsa bağlantı güvenliğinin sağlanması gerekir.

• Kullanıcı giriş bilgileri, bankacılık bilgileri vb. önemli bilgiler HTTPS gibi doğru yapılandırılmış güvenli bağlantılarla iletilmelidir.

HTTPS Denetimi

(36)

36

Bilgi Toplama ve Ayar Yönetimi

SSL Kontrolü

• Sslscan

(37)

37

Bilgi Toplama ve Ayar Yönetimi

Uygulama Dizin Yapısı

• Uygulamanın dizin yapısının çıkarılması gerekir.

• Böylece hassas verilerin

saklanabileceği dizinler bulunur.

• Yönetici arayüzüne erişim

• Daha odaklı manipülasyonlar yapılır.

• Dizin yapısı otomatize araçlar sayesinde çıkartılır.

• Netsparker

• Accunetix

• Burp …

(38)

38

Bilgi Toplama ve Ayar Yönetimi

Yönetici Arayüzüne Erişim

Yedeklenmiş veya Unutulmuş Dosyalar

Servis ve Port Bilgileri

(39)

39

Minimum Bilgi Prensibi

Bilgi ?

• http başlıkları

• Hata sayfaları ve hata kodları

• Unutulmuş açıklama satırları

• Kullanıcı uyarı mesajları

• E-posta adresleri

• Sosyal ağlar

• Arama motorları

• …

(40)

40

Bilgi Toplama ve Ayar Yönetimi

• Güvenlikçiler veya hackerlar tarafından bazı

teknolojilerde veya uygulamalarda tespit edilmiş açıklıklar internette yayınlanmış olabilir.

• Uygulama sunucusunun, teknolojisinin ve diğer eklentilerinin bilinmesi burada işe yarar.

Bilinen Açıklıklar

(41)

41

Bilgi Toplama ve Ayar Yönetimi

Google Hacking

• Google Hacking, Google’ın ileri arama teknikleri ve diğer servisleri kullanılarak yapılan bilgi toplama ve açıklık bulma işlemidir.

• Google Hacking Toolbar

• SearchDiggty

• Founstone GHDB

• …

(42)

42

Bilgi Toplama ve Ayar Yönetimi

Google Hacking

• Google Hacking, Google’ın ileri arama teknikleri ve diğer servisleri kullanılarak yapılan bilgi toplama ve açıklık bulma işlemidir.

• Google Hacking Database(GHDB), google kullanılarak uygulamalarda ve teknolojilerde tespit edilmiş açıklıkların depolandığı veritabanıdır.

• Google‘ da hedef uygulama veya teknoloji için böyle bir arama yapmak meşakkatli olacağından, bu aramaları yapan ve veritabanındaki açıklıkları deneyen otomatize araçlar kullanılır.

• Google Hacking Toolbar

• SearchDiggty

• Founstone GHDB

• …

(43)

43

Bilgi Toplama ve Ayar Yönetimi

Google Hacking

• İleri Arama Teknikleri

–intext –inurl

–allintext –allinurl

–intitle –author

–allintittle –id

–link –inanchor

–cache –location

–site –movie

–related –filetype

–info –phonebook

–insubject

(44)

44

GİRDİ – ÇIKTI DENETİMİ

(45)

45

Girdi -Çıktı Denetimi

Girdi ve Çıktı Alanlarının Belirlenmesi

• Web uygulamalarında genelde karşılaşılan problem; veri ile zararlı kodun birbirine karışmasıdır.

• Yeterli denetimlerin yapılmadığı bir uygulamada girdi alanları hackerlar tarafından kötü niyetle kullanılabilir.

• Testlerde yeterli denetim olduğunu anlayabilmek için girdi alanlarının tespiti gerekir.

• Girdi alanlarını sadece bir şeyler yazacağımız text kutuları olarak görmek hatalıdır. http bağlantılarında sunucu ve istemci arasında taşınan veya taşınmayan her şeyi girdi alanı olarak görmemiz gerekir.

İstemci Taraflı

Sunucu Taraflı

Girdi Denetimi

(46)

46

Girdi -Çıktı Denetimi

Bu listedekiler OLMASIN !

<scrlpt>

Black List (Kara Liste)

Negatif Denetim

Bu listedekiler OLSUN !

[a-Z]

White List (Beyaz Liste)

Pozitif Denetim

(47)

47

Girdi -Çıktı Denetimi

Çıktı Denetimi

• Web uygulamalarında, sadece girdi alanları değil çıktı alanları da problem oluşturabilirler.

• Bazı durumlarda uygulama koduna karıştırılan zararlı kodlar çıktı olarak istemciye gönderilebilir. Böyle bir durumda istemci dolaylı olarak bu zafiyetten etkilenir.

Encoding/Decoding

• Çıktı alanlarında zararlı kodların çalışmasını engellemek amacıyla uygulanması gereken bir yöntemdir.

• Html Encoding

• URL Encoding

• JS Encding

(48)

48

Girdi -Çıktı Denetimi

SOP (Same Origin Policy)

• Aynı Kaynak Politikası

• SOP, bir web uygulamasını, sayfasını oluşturan kaynakların veya uygulamanın kendisinin, başka uygulamalar tarafından kullanım kurallarını belirleyen bir standarttır.

• SOP, bu kontrolü sağlamak için;

Protokol Alan Adı Port

(49)

49

Girdi -Çıktı Denetimi

SOP Kuralları

http://www.uygulama.com:80/anon/zararli.js http://www.uygulama.com/admin/sayfa.aspx

https://www.uygulama.com/admin/sayfa.aspx

http://uygulama.com/anon/sayfa.aspx

http://www.uygulama.com:81/admin/sayfa.aspx

(50)

50

Girdi -Çıktı Denetimi

JavaScript

• Başlangıçta statik HTML sayfalarını görsel anlamda zenginleştirmek için kullanıldı.

• İlerleyen zamanlarda Sunucu ve İstemci arasındaki veri trafiğini azaltmak için kullanıldı.

• Günümüzde ise artık masaüstü programlarda bile kullanılacak kadar dinamik bir yapı kazandı.

• Bu durum; kullanıcı bilgisayarlarında, web tarayıcılarında, web uygulamalarında veya sayfalarında JavaScript kodlarının izinsiz kullanılmasının da önünü açmış oldu.

(51)

51

Girdi -Çıktı Denetimi

Java Script Sayfa İçinde Nasıl Kullanılır?

(52)

52

Bilgi Toplama ve Ayar Yönetimi

XSS

• Web uygulamasını kullanan

istemcilerde Javascript gibi dillerin izinsiz çalıştırılmasıdır.

• Reflected (Yansıtılan) XSS

• Stored (Persistent-Depolanmış) XSS

• DOM XSS

XSS Türleri

(53)

53

Girdi -Çıktı Denetimi

Reflected XSS (Yansıtılmış XSS)

1. Kötü amaçla oluşturulmuş link

3. Sunucu, kurcalanmış HTML üretir ve yollar

2. Kurban, kötü amaçlı linke tıklar

Saldırgan Kurban

Sunucu

(54)

54

Girdi -Çıktı Denetimi

Stored XSS (Depolanmış XSS)

1. Kurcalanmış HTML depolanır.

2. İstek

3. Kurcalanmış HTML Saldırgan

1. Kötü amaçla oluşturulmuş istek

Kurbanlar

(55)

55

Girdi -Çıktı Denetimi

DOM XSS

1. Kötü amaçla oluşturulmuş link

3. Sunucu, temiz HTML üretir ve yollar

2. Kurban, kötü amaçlı linke tıklar

Saldırgan Kurban

Sunucu

2. İstemci taraflı kod, çalışır.

(56)

56

Girdi -Çıktı Denetimi

SQL (Structured Query Language)

• Veritabanı üzerinde işlem yapılmasını sağlayan bir veri işleme dilidir.

• ANSI tarafından standart haline getirilmiştir.

• Daha sonra bazı firmalarca özelleştirilmiştir.

• MSSQL(Transact-SQL)

• MySQL

• Oracle(ProceduralLanguage-SQL)

• Temel SQL komutları

• SELECT

• UPDATE

• DELETE

• INSERT

(57)

57

Girdi -Çıktı Denetimi

SQL Injection (SQL Enjeksiyonu)

• Uygulamadan alınan parametrelerin doğrudan veritabanı sunucusuna gönderilmesi sonucu veritabanı üzerinde izinsiz sorgular çalıştırılabilir.

• Uygulama seviyesinde yeterli girdi denetimi yapılmadığında veya Veritabanı sunucusunda gelen sorguların denetimi yapılmadığında SQL-i

gerçekleştirilebilir.

Saldırgan Web Sunucu Veritabanı

1. Denetim yapılmaz. 2. Veritabanında işler.

/urunDetay.aspx?id=5’ Select * from products where id=5’

(58)

58

Girdi -Çıktı Denetimi

SQL Injection (SQL Enjeksiyonu)

http://www.uygulama.com/urun.aspx?id=100

$getid= "SELECT uname, umodelFROM urunWHERE uid= ‘100‘";

$getid= "SELECT uname, umodelFROM urunWHERE uid= ‘100‘";

$getid= "SELECT uname, umodelFROM urunWHERE uid= ‘100 or1=1‘";

Dinamik bir SQL sorgusu:

Normal bir değişken değeri:

Anormal bir değişken değeri:

(59)

59

Girdi -Çıktı Denetimi

SQL Injection (SQL Enjeksiyonu)

/urunDetay.aspx?id=5

/urunDetay.aspx?id= 5’

Select * from products where id= 5’

Select * from products where id= 5

/urunDetay.aspx?id= 5 UNION SELECT

IF(SUBSTRING(USER(),1,4)='root',SLEEP(5),1)#

Select * fromproductswhereid= 5 UNION SELECT IF(SUBSTRING(USER(),1,4)='root',SLEEP(5),1) #

Ürün Detayı Laptop (Orijinal Yanıt)

Hata Sayfası

Ürün Detayı Laptop

(Orijinal Yanıt –5 sn gecikmeli)

(60)

60

Girdi -Çıktı Denetimi

Parametrize Sorgular

string commandText = "SELECT * FROM Customers "+ "WHERE Country=@CountryName";

SqlCommand cmd = new SqlCommand(commandText, conn);

cmd.Parameters.Add("@CountryName",countryName);

string sql = string.Format ("SELECT TOP {0} * FROM Products",

numResults);

(61)

61

KİMLİK DOĞRULAMA

(62)

62

Kimlik Doğrulama

Kullanıcı kimlik doğrulama türü Şifre politikası

Giriş-Çıkış işlevi/Cache yönetimi

Kimlik doğrulamanın atlatılabilmesi

Brute Force (Kaba Kuvvet Saldırısı)

Dictionary Atack (Sözlük Saldırısı)

CAPTCHA kullanım

(63)

63

Kimlik Doğrulama

Kimlik Doğrulama

• Bir uygulamada Sunucunun kaynaklarını doğru kişiye açtığını bilmesi,

istemcinin de doğru kaynaktan veri aldığını bilmesi için sunucu ile istemci arasında kimlik doğrulama yapılabilir.

• Yetersiz kimlik doğrulama işlemi kullanıcı sahteciliği, hassas verilere 3.

kişilerin ulaşması gibi sonuçlar ortaya çıkartır.

(64)

64

Kimlik Doğrulama

• Base64 Kodlama Kullanır.

• Logout Fonksiyonu yoktur.

Basic

• Parola sunucu tarafında açık tutulur.

Digest

• Sadece Windows sunucu ve sistemlerinde çalışır.

• Parola sunucu tarafında açık tutulmaz

• NTLM veya Kerberos

• Proxy ve güvenlik duvarlarıyla uyumlu değildir.

Integrated

• İki taraflı kimlik doğrulama mümkündür.

• Geçerli sertifikaya ihtiyaç vardır.

• Sertifikanın korunması gerekir.

Certificate Based

• Proxy ve güvenlik duvarlarıyla uyumludur.

• Çok kullanıcılı uygulamalarda tercih edilir.

Form Based

(65)

65

Kimlik Doğrulama

Giriş -Çıkış İşlevi ve Cache Yönetimi

• El işçiliği gerektirir.

• Yetkilendirme gereken her sayfada Logout butonu var mı?

• Logout olunduğunda oturum çerezinin değeri ne oldu?

• Logout olduktan sonra tarayıcının

«Geri» butonu yetkili sayfayı dönüyor mu?

• Logout için ön tanımlı bir süre var mı?

• Önemli http istekleri ve cevapları önbellekte (cache) tutuluyor mu?

(66)

66

Kimlik Doğrulama

Şifre Politikaları

• Kurum Kullanıcı adı ve parola politikası öğrenilmeli.

• Uygulama teknolojilerinin ön tanımlı kullanıcı adları ve parolaları denenmeli.

• Yanlış yapılandırılmış HTTP başlıkları incelenmeli.

• Web sayfalarındaki gizli alanlara bakılmalı.

Giriş-Çıkış İşlevi

• Uygulamanın giriş-çıkış işlevlerinin çalışması incelenmeli.

• Uygulama tarayıcıda Cache’e izin verip vermediğine bakılmalı.

(67)

67

Kimlik Doğrulama

Kullanıcı Adı - Parola Yönetimi

• Geçerli ve geçersiz kullanıcı bilgileri

• Hata kodları / html ve yorum satırları

• URL adresleri

• Google

• Kurum kullanıcı adı parola politikası

• Tahmin edilebilir kullanıcı bilgileri

Beni Hatırla/Parola Sıfırlama

• Gizli Soru

– Kaç tane?

– Cevaplar tahmin edilebilir mi?

• En son giriş tarihi

• Hesap kilitleme (DOS)

(68)

68

Kimlik Doğrulama

Brute Force (Kaba Kuvvet Saldırısı)

• Başlangıç karakteri

• Bitiş karakteri

• Karakter uzunluğu

• Karakter çeşitliliği

Dictionary Attack (Sözlük Saldırısı)

• Daha önce oluşturulmuş bir listedeki tüm sözcüklerin denenmesi ile yapılır.

(69)

69

Kimlik Doğrulama

(70)

70

Kimlik Doğrulama

CAPTCHA Kullanım Hataları

• Completely Automated Public Turing test to tell Computers and Humans Apart

• Kullanıcı girişi bulunan uygulamalarda CAPTCHA, kaba kuvvet ve sözlük saldırılarını engelleyebilir.

• CAPTCHA ile ilgili sorunlar;

– Zayıf algoritmalar – Dar örnek uzay – Zayıf resimler

– CAPTCHA tekrarlama

(71)

71

YETKİLENDİRME

(72)

72

Yetkilendirme

Yetkilendirme Çeşitleri Yetki Artırımı

Yetki Dışı İşlem

Dizin Gezinimi

(73)

73

Yetkilendirme

• Kimliği doğrulanmış kullanıcıların uygulama üzerinde farklı hakları olabilir.

Yetkilendirme

(74)

74

IP ve sunucu ismi tabanlı URL tabanlı

İzin tabanlı

Uygulama tabanlı Rol tabanlı

Kaynak tabanlı

Yetkilendirme

Hibrit

Yetkilendirme Çeşitleri

(75)

75

Yetkilendirme

Yetki Dışı İşlem

1. Kimliği denetlenir, yetkilendirilir.

http://www.sirket.com.tr?action=update&id=1

2. Kimliği denetlenmez, yetkisizdir.

Saldırgan Kullanıcı

http://www.sirket.com.tr?action=delete&id=1 Web Sunucu

Veritabanı

(76)

76

Yetkilendirme

2. Yetkilidir, yönetici gibi davranır.

1. Yetkilidir, kullanıcı gibi davranır.

Admin Web Sunucu

Kullanıcı

Yetki Artırımı

Saldırgan

Yönetici

Kullanıcı Yatay yetki yükseltme.

Saldırgan

(77)

77

Yetkilendirme

Yatay ve Dikey Yetki Yükseltme

• Yatay yetki yükseltme

• Dikey yetki yükseltme

http://www.orneksite/makale/MakaleGoster.aspx?MakaleId=1003

<form method=“POST”>

action=“http://site.com/mailing_list.pl”>

...

<input type=“hidden” name=“login_name” value=“aUser”>

<input type=“hidden” name=“list”

value=“FREQUENT_FLYER”>

...

<input type=“hidden” name=“list_admin” value=“F”>

...

</form>

(78)

78

Yetkilendirme

Yetki Dışı İşlem

Uygulamanın bazı fonksiyonları çalıştırması için kullanıcıdan alınan

parametreleri yetki kontrolüne tabi tutmadan işleme alması durumudur.

http://www.sirket.com.tr?action=update&id=1

http://www.sirket.com.tr?action=delete&id=1

(79)

79

Yetkilendirme

Dizin Gezinimi

C:\\xampp\htdocs\socialn\user\profile\photos\confirmed\IMG001.jpg

http://www.socialn.com/showImage.aspx?foto=../boot.ini /photos http://www.socialn.com/showImage.aspx?foto=../../boot.ini /profile http://www.socialn.com/showImage.aspx?foto=../../../boot.ini /user http://www.socialn.com/showImage.aspx?foto=../../../../../boot.ini /socialn http://www.socialn.com/showImage.aspx?foto=../../../../../../boot.ini \htdocs http://www.socialn.com/showImage.aspx?foto=../../../../../../../boot.ini \www http://www.socialn.com/showImage.aspx?foto=../../../../../../../../boot.ini \C:\

http://www.socialn.com/showImage.aspx?foto=IMG001.jpg /confirmed

(80)

80

Kimlik Doğrulama

Path/Directory Traversal (Dizin Gezinimi)

• Zafiyet barındıran phpkodu:

• Zararlı http isteği:

• http cevabı:

<?php

$template=‘sayfa.php’;

if (is_set($_COOKIE[‘TEMPLATE’]))

$template=$_COOKIE[‘TEMPLATE’];

include (“/home/templates/”.$template);

?>

GET /vulnerable.phpHTTP/1.1

Cookie:TEMPLATE=../../../../../../../etc/passwd HTTP/1.1 200 OK

Content-Type:text-html

foot:fi3sED95ibqR6:0:1:System Operator:/:/bin/ksh daemon:*:1:1::/tmp:

Dizin Gezinimi ile uygulamanın web sunucusu üzerinde çağırdığı kaynağın yolu değiştirilerek erişimi yasak olan başka kaynapın çağırılmasıdır.

(81)

81

OTURUM YÖNETİMİ

(82)

82

Yetkilendirme

İstemci taraflı kontroller

Sunucu taraflı kontroller

Oturum başlatma ve sonlandırma

Oturum Sabitleme (Session Fixation)

Siteler arası istek sahteciliği (CSRF)

(83)

83

Oturum Yönetimi

• Web uygulamaları HTTP üzerinden haberleşirler. Fakat HTTP, istemcinin kimlik bilgisini doğruladıktan sonra istemcinin

durum bilgisini (oturum bilgisini) tutmaz. Yani bir kullanıcıdan gelen iki isteğin aynı kullanıcıdan geldiğini anlayamaz.

• Bu nedenle istemcinin durum bilgisinin kontrol edilmesi için her istemciye özel bir değer sunucu veya geliştirici tarafından üretilir. (Session ID)

Oturum Yönetimi

• URL taşınan oturum bilgisi

• Form gizli alanlarında taşınan outurum bilgisi

• Çerezlerde taşınan oturum bilgisi (en yaygın olanı)

Oturum Yönetimi Türleri

(84)

84

Oturum Yönetimi

Oturum Yönetimi Ne/Neden/Nasıl?

Web Sunucu Kullanıcı

(85)

85

Oturum Yönetimi

SessionID

Time- Start

Time-End

Secure Transpor

t

Unique Random

Length

Unpredic table

ASP.NET_SessionId=5gura4554gaayp55gca4qp45;

(86)

86

Oturum Yönetimi

1

•Gizli alanlar

2

•HTTP Başlıkları

3

•URL bilgisi

4

•Çerezlerin içeriği

5

•SessionID özellikleri

(87)

87

Oturum Yönetimi

Oturum Bilgisi Özellikleri

• Uniqueness

• Randomness

• Length

• Unpredictible

• Expire Date

• Secure Transport

Oturum Bilgisi Nitelikleri

• Secure

• HttpOnly

• Domain

• Path

• Expires

Set-Cookie: JSESSIONID=0023ghTq4Lh0za2mrkk45-yWb7:-3;

domain=profiles.socialn.com; path=/myprofile/; Secure; HttpOnly;

(88)

88

Oturum Yönetimi

1. Uygulamaya erişir.

2. Oturum bilgisi alır.

Web Sunucu

Kullanıcı

Session Fixation (Oturum Sabitleme)

Saldırgan

5. Aldığı oturum bilgisiyle uygulamaya girer.

3. Oturum bilgisi içeren

bağlantıyı kullanıcıya gönderir.

4. Oturum bilgisini kullandırır.

• Uygulama, kullanıcı giriş yaptıktan sonra oturum bilgisini değiştirmediği durumlarda bu saldırı ortaya çıkmaktadır.

• Uygulamanın saldırgana verdiği oturum bilgisiyle, saldırgan kullanıcıyı uygulamaya girmeye zorlayabilir.

(89)

89

Oturum Yönetimi

1. Uygulamaya girer ve oturum bilgisi alır. Etkileşim halindedir.

2. Tarayıcının başka bir tabında kötü amaçlı sayfayı açar

Web Sunucu

Kullanıcı

CSRF (Siteler Arası İstek Sahteciliği)

3. Kötü amaçlı isteği bilmeden yollar.

Güvensiz Uygulama

(90)

90

Bilgi Toplama ve Ayar Yönetimi

• Güvenlikçiler veya hackerlar tarafından bazı teknolojilerde veya uygulamalarda tespit edilmiş açıklıklar internette yayınlanmış olabilir.

• Uygulama sunucusunun, teknolojisinin ve diğer eklentilerinin bilinmesi burada işe yarar.

Bilinen Açıklıklar ve ExploitDB

(91)

91

Referanslar

Benzer Belgeler

Eğer kullanıcı gönderdiği faksların bir nüshasını e_mail olarak istiyorsa, buraya bir veya birden fazla e_mail yazarak bu işlemi gerçekleştirebilir... Eğer kullanıcı

Bilişsel radyo ağları konusu, bant aralıklarının sabit tahsisinden doğan kullanım verimsizliğini en aza indirmek amacı ile, haberleşme ortamını dinamik olarak

Anahtar Sözcükler: Eğitim Kurumları, Sızma Testi Metodolojisi, Bilgi Güvenliği, Penetrasyon, BackTrack.. Abstract: Internet is indispensable for educational institutions, is

Cevap sürelerindeki artışa rağmen önbellek sunucusu ile WMTS servisi 5000 eşzamanlı kullanıcıyı desteklenmiş ve bir önceki istemci sunucu mimarisine göre 2

Uygulama sırasında proje uygulama sahası sınırı içerisinde kalan, kadastrosu tamamlanmış çalışma alanlarında, Hazinenin senetsiz olarak tasarrufunda bulunan ya da

“Sorgula” düğmesine tıkladığınızda girdiğiniz sorgulama kriterlerine ait kayıt varsa bir sonraki ekranda girdiğiniz sorgulama kriterleri ve Firma Yetkili Servisleri

içerisinde bildirir. c) Üretici, üretici örgütü ve müteşebbisler; sözleşmedeki hak ve yükümlülükleri saklı kalmak koşuluyla, sertifikasyon kapsamındaki ürün

socket() bind() Sokete bir port numarası bağla.. listen() accept() bir