Web Uygulamalarında Sızma Testi Yöntemleri

Cross Site Script (XSS)

Kötü niyetli javascript, VBScript, ActiveX, HTML yada Flash kodları gömülerek web uygulaması üzerinden veri çalınan yöntemlerdir. İkiye ayrılır; Reflected XSS ve Stored XSS

1-Reflected XSS: Bu saldırı tipi açıklık bulunan sitede uygun alanlara yazılan javascript kodlarının çalıştırılması ile gerçekleştirilir. Burada sadece saldırı yapan kişi etkiyi görebilir ziyaretçilere etki edemez.

2-Stored XSS: Bu saldırı tipi reflected xss saldırısına göre daha çok tehlikelidir. Saldırgan açıklık bulduğu alana zararlı javascript kodlarını ekleyerek veritabanına kaydeder. Veritabanına kaydedilen veriler siteyi ziyaret eden herkese etki eder.

SQL Injection Vulnerability

SQL Injection, uygulama ekranındaki ilgili alana ek SQL ifadelerini ekleyerek yapılan bir tür atak tekniğidir. Saldırgan bu şekilde içerideki verileri ele geçirebilir.

Insecure Direct Object References

Insecure Direct Object References saldırı, geliştiricinin, URL olarak veya parametre yoluyla; dosya, dizin, veritabanı kaydı veya anahtar gibi, iç uygulama nesnesine ait bir referansı açığa çıkardığı zaman meydana gelir. Saldırgan, eğer erişim kontrol denetimi yoksa, izinsiz diğer nesnelere erişmek için doğrudan nesne referanslarını kullanabilir.

Security Misconfiguration

Güvenlik ile ilgili tanımların zayıf, yanlış veya varsayılan olarak bırakılmasından kaynaklanan saldırılardır. Standart bilgileri kullanarak sisteme sızmaya çalışılan saldırı tipidir.

Broken Authentication and Session Management

Tam olarak güvenliği sağlanmamış oturum nesneleri ve çerezlerinin ele geçirilip kötü amaçlar için kullanılmasıdır.

Cross Site Request Forgery (CSRF)

CSRF ataklarından bir sisteme login olmuş kullanıcı tekrardan login request göndermesi için zorlanır fakat bu sefer login requestindeki bilgileri istemciye değil saldırgana aittir.  Bu saldırılar kullanıcının izni ve isteği dışında, onun yerine işlem yaptırılmasıyla gerçekleşir.

Insecure Cryptographic Storage

Kriptolanmamış verilerin zayıf sunucularda korunmamasıdır. Eğer yeterli kriptolama sağlanmamışsa sunucular üzerinden özel güvenlik gerektiren bilgilere erişilebilir.

Failure to Restrict URL Access

Erişimi kısıtlanmış sayfalara erişimlerin kontrol edilmemesidir. Erişime açık bırakılan sayfalardan saldırılar alınabilir.

Insufficient Transport Layer Protection

Uygulamalar genelde hassas mesajlar gönderilirken network trafiğini zayıf algoritmalarla kriptolamayı gerçekleştirmeyebilirler. Burada eğer network trafiğini dinlemeyi başaran birileri varsa network üzerinden ulaştırmaya çalıştığımız bütün bilgileri saldırgan tarafından ele geçirilebilir.

Unvalidated Redirects and Forwards

Birçok web uygulamasında ilk ve son veri kontrolü yapılmaksızın yönlendirmeler yapılmaktadır. Eğer bir kontrol yoksa saldırgan phishing ya da malware sitesine yönlendirebilir.

Buffer Over Flow

Buffer Overflow hatalı kodlanmış bir programın dışarıdan bir etkiyle belleğinin taşmasına neden olmaktır. Kontrolsüz şekilde belleğin taşmasıyla programın akışı değiştirilerek saldırı gerçekleştirilir.

Local File Inclusion

LFI Serverdan dosya çağırma işlemidir. Lfi açığı Php’de bulunan bir açıktır. Bu açık yöntemiyle de çeşitli saldırılar gerçekleştirilebilir.

Remote Code Execution ve Remote Commend Execution (RCE)

Remote code execution ve remote command execution farklı olaylardır. Remote code execution, script üzerinden kod çalıştırma açığıdır. eval() fonksiyonu ve bu fonksiyonla aynı mantıkla çalışan veya bünyesinde bu fonksiyonu çağıran fonksiyonlar remote code execution’a sebebiyet vermektedir. Eval desteği olan her web programlama dilinde karşılaşılabilir ve o script dilinde yazacağınız kodları çalıştırabilmenize imkan sağlar.

Remote command execution farklıdır. Bu açık türü ise bu tür script dilleri üzerinden işletim sistemine yapılan çağrıları kullanır. Yani script kodları değil, doğrudan cmd/shell komutları çalıştırılır.

Remote File Inclusion (RFI) ve Local File Inclusion (LFI)

Genel olarak Local File Inclusion, Yerelden dosya ekleyerek kod çalıştırmak, Remote File Inclusion ise Uzaktan dosya ekleyerek kod çalıştırmaktır.

Click Jacking

Web sitesinin içine yerleştirilen kodlarla bilgisayarınıza zararlı yazılımlar yüklenmesi işlemidir. Ön tarafta görünen bir web sitesi hazırlanır bu web sitesi iframe içinde yerleştirilir. Sayfa transparant olduğundan site ziyaretçisi onun yerine arka plan da bulunan içeriği görür.  Kullanıcı arka tarafta sitede ilgili butonu tıklamaya çalışırken ön taraftaki komutu tetikler. Bu işlemle bilgisayara zararlı yazılımlar bulaştırılır.

Directory Listing

Directory Listing, bir web uygulamasının sahip olduğu dizin bilgilerinin tarayıcıda listelenmesi özelliğidir. Standartlara uygun olarak geliştirilmiş web uygulamalarında, listelemesi yapılabilecek dizinlerin sadece istemciyi ilgilendiren kaynakları içermesi gerekir. Saldırı senaryosunda ise bu dizinlerin yapılandırma ayarlarını ve bağlantı bilgilerini gibi kritik bilgileri içeriyorsa saldırgan bazı teknik bilgilere erişebilir.

Directory Travesing

Saldırganın yetkisi sınırlandırılmış dizinlere girerek gizli verilere ulaşmayı yada kod çalıştırılması olayıdır. Bu açık direkt web sunucusunda ya da sunucuda çalışan uygulamaların aldığı girdilerin kontrol edilmemesinden kaynaklanır.