Un test de penetrare a unei aplicații web este o activitate concepută pentru a evalua modul în care un program bazat pe Internet s-ar comporta în timpul unui atac sau exploatare. Aceste teste folosesc o varietate de programe software pentru a scana o aplicație și apoi pentru a efectua diferite acțiuni care ar putea apărea în timpul unui atac real. Un test de penetrare a aplicației web poate fi efectuat de o echipă de dezvoltare sau de un furnizor de servicii terță parte. Dacă se folosește un furnizor extern, echipa de dezvoltare sau personalul de tehnologia informației (IT) nu va fi uneori notificat cu privire la test de către conducere. Acest lucru poate permite unui test de penetrare a aplicației web să descopere defecte care altfel ar fi trecut neobservate, ceea ce poate permite ca aceste probleme să fie rezolvate înainte de lansarea software-ului.
Aplicațiile web sunt pachete software care pot fi accesate și rulate pe Internet. Aceste aplicații pot îndeplini multe funcții, iar în unele cazuri sunt responsabile de gestionarea datelor care sunt considerate private sau chiar valoroase. Pentru a evita atacurile compromițătoare, testele de penetrare sunt de obicei efectuate pentru a localiza eventualele puncte slabe sau zonele ușor de exploatat din cod.
Testele tipice de penetrare a aplicațiilor web încep cu o fază de colectare a informațiilor. Scopul acestui pas este de a determina cât mai multe informații despre aplicație. Prin trimiterea de solicitări către aplicație și folosind instrumente precum scanere și motoare de căutare, este adesea posibil să obțineți informații precum numerele versiunii de software și mesaje de eroare care sunt adesea folosite pentru a găsi exploit-uri mai târziu.
După ce s-a acumulat o cantitate suficientă de informații, următorul obiectiv al unui test de penetrare a unei aplicații web este să efectueze o serie de atacuri și exploatări diferite. În unele cazuri, informațiile adunate în prima fază vor identifica exploatările la care aplicația ar putea fi vulnerabilă. Dacă nu au fost detectate vulnerabilități evidente, atunci se poate încerca o gamă completă de atacuri și exploatări.
Multe vulnerabilități tehnice diferite pot fi identificate printr-un test de penetrare a aplicației web. Aceste teste vor încerca în mod obișnuit să folosească metode precum manipularea universală a localizatorului de resurse (URL), deturnarea sesiunii și injectarea limbajului de interogare structurat (SQL) pentru a pătrunde într-o aplicație. De asemenea, poate exista o încercare de a iniția o depășire a memoriei tampon sau alte acțiuni similare care pot determina o aplicație să se comporte anormal. Dacă oricare dintre aceste atacuri sau exploatări determină aplicația să dezvăluie date sensibile testerului de penetrare, defectele sunt de obicei raportate împreună cu un curs de acțiune sugerat.