Whitehat HackerEthical Hacker Bug HunterResearcher (:
Biz ne yapıyoruz?
Bugün web sitelerinin %73’ünden fazlası hacklenmeye karşı hassaslar.
Amacımız, bilgisayar korsanlarından önce güvenlik açıklarını bulmak. Ana uzmanlığımız web uygulamaları için güvenlik denetimidir. Denetimlerimiz, otomatik araçlar tarafından değil, insanlar tarafından desteklenmektedir.
Ne tür hizmetler sunuyoruz?
Web uygulamanız için Sızma Testi, Güvenlik Denetimi ve Güvenlik Açığı Değerlendirmesi hizmetleri sağlamamızı talep ederek, yazılımınızdaki tehditler konusunda endişelenmenize gerek kalmadan yalnızca temel iş ihtiyaçlarınıza odaklanabilirsiniz.
All topics Vulnerabilities
CORS
Kaynaklar arası kaynak paylaşımı (CORS), belirli bir etki alanının dışında bulunan kaynaklara kontrollü erişim sağlayan bir tarayıcı mekanizmasıdır. Aynı kaynak ilkesini (SOP) genişletir ve esneklik ekler. Bununla birlikte, bir web sitesinin CORS politikası kötü yapılandırılmış ve uygulanmışsa, etki alanları arası tabanlı saldırılar için potansiyel de sağlar. CORS, siteler arası istek sahteciliği (CSRF) gibi kaynaklar arası saldırılara karşı bir koruma değildir.
Clickjacking
Clickjacking, bir kullanıcının bir tuzak web sitesindeki başka bir içeriğe tıklayarak gizli bir web sitesindeki eyleme dönüştürülebilir içeriğe tıklaması için kandırıldığı arayüz tabanlı bir saldırıdır. Aşağıdaki örneği göz önünde bulundurun: Bir web kullanıcısı bir tuzak web sitesine erişir (belki de bu bir e-posta ile sağlanan bir bağlantıdır) ve bir ödül kazanmak için bir düğmeyi tıklar. Bilmeden, bir saldırgan tarafından alternatif bir gizli düğmeye basmak için kandırıldılar ve bu, başka bir sitede bir hesabın ödenmesiyle sonuçlandı. Bu, bir tıklama saldırısına bir örnektir. Teknik, örneğin bir iframe içinde bir düğme veya gizli bağlantı içeren görünmez, işlem yapılabilir bir web sayfasının (veya birden çok sayfanın) dahil edilmesine bağlıdır. iframe, kullanıcının beklenen tuzak web sayfası içeriğinin üzerine yerleştirilir. Bu saldırı, kullanıcının bir düğme tıklaması gibi bir eylemi gerçekleştirmesi gerektiğinden CSRF saldırısından farklıdır, oysa bir CSRF saldırısı, kullanıcının bilgisi veya girişi olmadan tüm bir isteğin oluşturulmasına bağlıdır.
SQL injection
SQL enjeksiyonu, bir saldırganın bir uygulamanın veritabanına yaptığı sorgulara müdahale etmesine olanak tanıyan bir web güvenlik açığıdır. Genellikle bir saldırganın normalde alamadıkları verileri görüntülemesine izin verir. Bu, diğer kullanıcılara ait verileri veya uygulamanın kendisinin erişebildiği diğer verileri içerebilir. Çoğu durumda, bir saldırgan bu verileri değiştirebilir veya silebilir ve uygulamanın içeriğinde veya davranışında kalıcı değişikliklere neden olabilir. Bazı durumlarda, bir saldırgan, temel alınan sunucunun veya diğer arka uç altyapısının güvenliğini aşmak veya bir hizmet reddi saldırısı gerçekleştirmek için bir SQL enjeksiyon saldırısını yükseltebilir.
CSRF
Siteler arası istek sahteciliği (CSRF olarak da bilinir), bir saldırganın kullanıcıları gerçekleştirmeyi düşünmedikleri eylemleri gerçekleştirmeye teşvik etmesine olanak tanıyan bir web güvenlik açığıdır. Bir saldırganın, farklı web sitelerinin birbirine müdahale etmesini önlemek için tasarlanmış aynı kaynak politikasını kısmen atlatmasına olanak tanır.
Command injection
OS komut enjeksiyonu (kabuk enjeksiyonu olarak da bilinir), bir saldırganın bir uygulamayı çalıştıran sunucuda rastgele işletim sistemi (OS) komutları yürütmesine ve genellikle uygulamanın ve tüm verilerinin güvenliğinin tamamen tehlikeye girmesine izin veren bir web güvenlik açığıdır. Çoğu zaman, bir saldırgan, saldırıyı kuruluş içindeki diğer sistemlere yönlendirmek için güven ilişkilerinden yararlanarak barındırma altyapısının diğer bölümlerini tehlikeye atmak için bir işletim sistemi komut enjeksiyon güvenlik açığından yararlanabilir.
SSRF
Sunucu tarafı istek sahteciliği (SSRF olarak da bilinir), bir saldırganın sunucu tarafı uygulamayı, saldırganın seçtiği rastgele bir etki alanına HTTP istekleri yapması için teşvik etmesine olanak tanıyan bir web güvenlik açığıdır. Tipik bir SSRF saldırısında, saldırgan sunucunun kuruluşun altyapısındaki yalnızca dahili hizmetlere bağlantı kurmasına neden olabilir. Diğer durumlarda, sunucuyu rastgele harici sistemlere bağlanmaya zorlayabilir ve yetkilendirme kimlik bilgileri gibi hassas verileri potansiyel olarak sızdırabilirler.
Access control
WebSockets
WebSockets, modern web uygulamalarında yaygın olarak kullanılmaktadır. HTTP üzerinden başlatılırlar ve her iki yönde de asenkron iletişim ile uzun ömürlü bağlantılar sağlarlar. WebSocket’ler, kullanıcı işlemlerini gerçekleştirmek ve hassas bilgileri iletmek dahil her türlü amaç için kullanılır. Normal HTTP ile ortaya çıkan hemen hemen her web güvenlik açığı, WebSockets iletişimleriyle ilgili olarak da ortaya çıkabilir.
Insecure deserialization
Güvenli olmayan seri durumdan çıkarma, kullanıcı tarafından kontrol edilebilen verilerin bir web sitesi tarafından seri durumdan çıkarılmasıdır. Bu, bir saldırganın zararlı verileri uygulama koduna geçirmek için serileştirilmiş nesneleri değiştirmesine olanak tanır.
Serileştirilmiş bir nesneyi tamamen farklı bir sınıftan bir nesneyle değiştirmek bile mümkündür. Endişe verici bir şekilde, web sitesinde mevcut olan herhangi bir sınıfın nesneleri, hangi sınıftan beklendiğine bakılmaksızın seri hale getirilecek ve somutlaştırılacaktır. Bu nedenle, güvenli olmayan seri durumdan çıkarma, bazen bir “nesne yerleştirme” güvenlik açığı olarak bilinir.
Beklenmeyen bir sınıfın nesnesi bir istisnaya neden olabilir. Ancak bu zamana kadar, hasar zaten yapılmış olabilir. Birçok seri durumdan çıkarma tabanlı saldırı, seri durumdan çıkarma tamamlanmadan önce tamamlanır. Bu, web sitesinin kendi işlevselliği kötü amaçlı nesneyle doğrudan etkileşime girmese bile, seri durumdan çıkarma sürecinin kendisinin bir saldırı başlatabileceği anlamına gelir. Bu nedenle mantığı güçlü yazılan dillere dayanan web siteleri de bu tekniklere karşı savunmasız kalabilir.
Information disclosure
Bilgi sızıntısı olarak da bilinen bilgi ifşası, bir web sitesinin istemeden kullanıcılarına hassas bilgileri ifşa etmesidir. Bağlama bağlı olarak, web siteleri aşağıdakiler dahil olmak üzere her türlü bilgiyi olası bir saldırgana sızdırabilir:
Kullanıcı adları veya finansal bilgiler gibi diğer kullanıcılarla ilgili veriler
Hassas ticari veya iş verileri
Web sitesi ve altyapısı hakkında teknik detaylar
Hassas kullanıcı veya işletme verilerini sızdırmanın tehlikeleri oldukça açıktır, ancak teknik bilgilerin ifşa edilmesi bazen aynı derecede ciddi olabilir. Bu bilgilerin bir kısmı sınırlı kullanım için olsa da, başka ilginç güvenlik açıkları içerebilecek ek bir saldırı yüzeyini açığa çıkarmak için potansiyel olarak bir başlangıç noktası olabilir. Toplayabileceğiniz bilgi, karmaşık, yüksek şiddette saldırılar oluşturmaya çalışırken bulmacanın eksik parçasını bile sağlayabilir.
Zaman zaman, hassas bilgiler, web sitesinde normal bir şekilde gezinen kullanıcılara dikkatsizce sızdırılabilir. Ancak daha yaygın olarak, bir saldırganın web sitesiyle beklenmedik veya kötü niyetli yollarla etkileşim kurarak bilgi ifşasını ortaya çıkarması gerekir. Ardından, ilginç davranışları belirlemek ve denemek için web sitesinin yanıtlarını dikkatlice inceleyeceklerdir.
Request smuggling
HTTP istek kaçakçılığı, bir web sitesinin bir veya daha fazla kullanıcıdan alınan HTTP istek dizilerini işleme biçimine müdahale etme tekniğidir. Kaçakçılık güvenlik açıklarını talep etmek, genellikle doğası gereği kritiktir ve bir saldırganın güvenlik denetimlerini atlamasına, hassas verilere yetkisiz erişim elde etmesine ve diğer uygulama kullanıcılarını doğrudan tehlikeye atmasına olanak tanır.
Authentication
Kimlik doğrulama, belirli bir kullanıcı veya istemcinin kimliğini doğrulama işlemidir. Başka bir deyişle, gerçekten iddia ettikleri kişi olduklarından emin olmayı içerir. En azından kısmen, web siteleri tasarım gereği internete bağlanan herkese açıktır. Bu nedenle, sağlam kimlik doğrulama mekanizmaları, etkili web güvenliğinin ayrılmaz bir yönüdür.
Farklı kimlik doğrulama türlerinin sınıflandırılabileceği üç kimlik doğrulama faktörü vardır:
Parola veya güvenlik sorusunun yanıtı gibi bildiğiniz bir şey. Bunlara bazen “bilgi faktörleri” denir.
Sahip olduğunuz bir şey, yani cep telefonu veya güvenlik belirteci gibi fiziksel bir nesne. Bunlara bazen “sahip olma faktörleri” denir.
Olduğunuz veya yaptığınız bir şey, örneğin biyometri veya davranış kalıplarınız. Bunlara bazen “kalıtsal faktörler” denir.
XXE
XML harici varlık enjeksiyonu (XXE olarak da bilinir), bir saldırganın bir uygulamanın XML verilerini işlemesine müdahale etmesine izin veren bir web güvenlik açığıdır. Genellikle bir saldırganın uygulama sunucusu dosya sistemindeki dosyaları görüntülemesine ve uygulamanın kendisinin erişebileceği herhangi bir arka uç veya harici sistemle etkileşime girmesine izin verir.
Bazı durumlarda, bir saldırgan, sunucu tarafı istek sahteciliği (SSRF) saldırıları gerçekleştirmek için XXE güvenlik açığından yararlanarak, temeldeki sunucunun veya diğer arka uç altyapısının güvenliğini aşmak için bir XXE saldırısını yükseltebilir.
Web cache poisoning
Web önbelleği zehirlenmesi, bir saldırganın bir web sunucusunun ve önbelleğin davranışından yararlanarak diğer kullanıcılara zararlı bir HTTP yanıtı sunduğu gelişmiş bir tekniktir.
Temel olarak, web önbelleği zehirlenmesi iki aşamadan oluşur. İlk olarak, saldırganın arka uç sunucusundan istemeden bir tür tehlikeli yük içeren bir yanıtı nasıl elde edeceğini çözmesi gerekir. Başarılı olduklarında, yanıtlarının önbelleğe alındığından ve ardından hedeflenen kurbanlara sunulduğundan emin olmaları gerekir.
Zehirli bir web önbelleği, çok sayıda farklı saldırıyı dağıtmanın, XSS, JavaScript yerleştirme, açık yeniden yönlendirme vb. gibi güvenlik açıklarından yararlanmanın potansiyel olarak yıkıcı bir yolu olabilir.
XSS
Siteler arası komut dosyası oluşturma (XSS olarak da bilinir), bir saldırganın, kullanıcıların savunmasız bir uygulamayla olan etkileşimlerini tehlikeye atmasına olanak tanıyan bir web güvenlik açığıdır. Bir saldırganın, farklı web sitelerini birbirinden ayırmak için tasarlanmış aynı kaynak politikasını atlatmasına olanak tanır. Siteler arası komut dosyası çalıştırma güvenlik açıkları normalde bir saldırganın kurban kullanıcı gibi görünmesine, kullanıcının gerçekleştirebileceği tüm eylemleri gerçekleştirmesine ve kullanıcının herhangi bir verisine erişmesine izin verir. Kurban kullanıcı uygulama içinde ayrıcalıklı erişime sahipse, saldırgan uygulamanın tüm işlevleri ve verileri üzerinde tam kontrol sahibi olabilir.
OAuth authentication
OAuth, web sitelerinin ve web uygulamalarının başka bir uygulamadaki bir kullanıcının hesabına sınırlı erişim talep etmesini sağlayan, yaygın olarak kullanılan bir yetkilendirme çerçevesidir. En önemlisi, OAuth, kullanıcının oturum açma kimlik bilgilerini istekte bulunan uygulamaya göstermeden bu erişimi vermesine izin verir. Bu, kullanıcıların hesaplarının tam kontrolünü üçüncü bir tarafa devretmek zorunda kalmadan hangi verileri paylaşmak istediklerine ince ayar yapabilecekleri anlamına gelir.
Temel OAuth işlemi, bir kullanıcının hesabından belirli verilere erişim gerektiren üçüncü taraf işlevlerini entegre etmek için yaygın olarak kullanılır. Örneğin, bir uygulama, bağlantı kurulacak kişileri önerebilmesi için e-posta kişi listenize erişim istemek için OAuth’u kullanabilir. Bununla birlikte, aynı mekanizma, üçüncü taraf kimlik doğrulama hizmetleri sağlamak için de kullanılır ve kullanıcıların farklı bir web sitesinde sahip oldukları bir hesapla oturum açmalarına olanak tanır.
HTTP Host header attacks
HTTP Host başlığı, HTTP/1.1’den itibaren zorunlu bir istek başlığıdır. İstemcinin erişmek istediği alan adını belirtir. Örneğin, bir kullanıcı https://kamilsevi.com/kamilsevi adresini ziyaret ettiğinde, tarayıcısı aşağıdaki gibi bir Ana Bilgisayar başlığı içeren bir istek oluşturacaktır:
GET /kamilsevi HTTP/1.1 Ev HOST: kamilsevi.com
İsteğin bir aracı sistem tarafından iletilmesi gibi bazı durumlarda, Ana Bilgisayar değeri, amaçlanan arka uç bileşenine ulaşmadan önce değiştirilebilir. Bu senaryoyu aşağıda daha ayrıntılı olarak tartışacağız.
Server-side template injection
Sunucu tarafı şablon enjeksiyonu, bir saldırganın bir şablona kötü amaçlı bir yük enjekte etmek için yerel şablon sözdizimini kullanabilmesidir ve bu daha sonra sunucu tarafında yürütülür.
Şablon motorları, sabit şablonları geçici verilerle birleştirerek web sayfaları oluşturmak için tasarlanmıştır. Sunucu tarafı şablon ekleme saldırıları, kullanıcı girişi veri olarak iletilmek yerine doğrudan bir şablonda birleştirildiğinde meydana gelebilir. Bu, saldırganların şablon motorunu manipüle etmek için rastgele şablon yönergeleri enjekte etmesine ve genellikle sunucunun tam kontrolünü ele geçirmelerine olanak tanır. Adından da anlaşılacağı gibi, sunucu tarafı şablon ekleme yükleri, sunucu tarafında teslim edilir ve değerlendirilir, bu da onları potansiyel olarak tipik bir istemci tarafı şablon enjeksiyonundan çok daha tehlikeli hale getirir.
DOM-based
Belge Nesne Modeli (DOM), bir web tarayıcısının sayfadaki öğelerin hiyerarşik temsilidir. Web siteleri, DOM’nin düğümlerini ve nesnelerini ve bunların özelliklerini değiştirmek için JavaScript’i kullanabilir. DOM manipülasyonu başlı başına bir sorun değildir. Aslında, modern web sitelerinin nasıl çalıştığının ayrılmaz bir parçasıdır. Ancak verileri güvenli olmayan bir şekilde işleyen JavaScript, çeşitli saldırılara olanak sağlayabilir. DOM tabanlı güvenlik açıkları, bir web sitesi, kaynak olarak bilinen, saldırgan tarafından kontrol edilebilir bir değer alan ve onu havuz olarak bilinen tehlikeli bir işleve geçiren JavaScript içerdiğinde ortaya çıkar.
Business logic vulnerabilities
İş mantığı güvenlik açıkları, bir saldırganın istenmeyen davranışlar ortaya çıkarmasına izin veren bir uygulamanın tasarım ve uygulamasındaki kusurlardır. Bu potansiyel olarak saldırganların kötü niyetli bir hedefe ulaşmak için meşru işlevselliği manipüle etmesine olanak tanır. Bu kusurlar genellikle meydana gelebilecek olağandışı uygulama durumlarını tahmin edememenin ve sonuç olarak bunları güvenli bir şekilde ele almamanın sonucudur.