Bir web uygulaması penetrasyon testi, Internet tabanlı bir programın saldırı veya istismar sırasında nasıl davranacağını ölçmek için tasarlanmış bir aktivitedir. Bu testler, bir uygulamayı taramak için çeşitli yazılım programlarından yararlanır ve daha sonra gerçek bir saldırı sırasında meydana gelebilecek farklı eylemleri gerçekleştirir. Bir web uygulaması penetrasyon testi, bir geliştirme ekibi veya üçüncü taraf bir servis sağlayıcı tarafından yapılabilir. Bir dış sağlayıcı kullanılırsa, geliştirme ekibi veya bilgi teknolojisi (BT) personeli, bazen test tarafından yönetim tarafından bilgilendirilmeyecektir. Bu, bir web uygulamasına nüfuz etme testinin, başka türlü fark edilmemiş olabilecek kusurları ortaya çıkarmasına ve bu sorunların yazılımın piyasaya sürülmesinden önce düzeltilmesine olanak tanıyabilir.
Web uygulamaları, İnternet üzerinden erişilebilen ve çalıştırılabilen yazılım paketleridir. Bu uygulamalar birçok işlevi yerine getirebilir ve bazı durumlarda özel veya değerli olduğu düşünülen verilerin ele alınmasından sorumludurlar. Saldırılardan ödün vermekten kaçınmak için, koddaki zayıf noktaları veya kolayca kullanılan alanları bulmak için tipik olarak penetrasyon testleri yapılır.
Tipik web uygulaması penetrasyon testleri, bilgi toplama aşaması ile başlar. Bu adımın amacı, başvuru hakkında mümkün olduğunca fazla bilgi belirlemektir. Uygulamaya istek göndererek ve tarayıcılar ve arama motorları gibi araçlar kullanarak, daha sonra istismarları bulmak için sıklıkla kullanılan yazılım sürüm numaraları ve hata mesajları gibi bilgiler elde etmek genellikle mümkündür.
Yeterli miktarda bilgi toplandıktan sonra, bir web uygulaması penetrasyon testinin bir sonraki amacı bir dizi farklı saldırı ve istismar yapmaktır. Bazı durumlarda, ilk aşamada toplanan bilgiler, uygulamanın savunmasız olabileceği istismarları belirleyecektir. Açık bir güvenlik açığı tespit edilmediyse, geniş kapsamlı saldırı ve istismarlar denenebilir.
Bir web uygulaması penetrasyon testi ile birçok farklı teknik güvenlik açığı bulunabilir. Bu testler tipik olarak bir uygulamaya girebilmek için evrensel kaynak bulma (URL) manipülasyonu, oturum ele geçirme ve yapılandırılmış sorgu dili (SQL) enjeksiyonu gibi yöntemleri kullanmaya çalışır. Bir arabellek taşması veya bir uygulamanın anormal davranmasına neden olabilecek diğer benzer eylemler başlatılmaya çalışılabilir. Bu saldırı veya istismarlardan herhangi biri, uygulamanın penetrasyon test cihazına hassas verileri ortaya çıkarmasına neden olursa, kusurlar tipik olarak önerilen bir eylem süreci ile birlikte bildirilir.


