Una prueba de penetración de aplicaciones web es una actividad diseñada para medir cómo se comportaría un programa basado en Internet durante un ataque o explotación. Estas pruebas utilizan una variedad de programas de software para escanear una aplicación y luego realizar diferentes acciones que podrían ocurrir durante un ataque real. Un equipo de desarrollo o un proveedor de servicios externo puede realizar una prueba de penetración de aplicaciones web. Si se utiliza un proveedor externo, el equipo de desarrollo o el personal de tecnología de la información (TI) a veces no serán notificados de la prueba por parte de la gerencia. Esto puede permitir que una prueba de penetración de aplicaciones web descubra fallas que de otro modo podrían haber pasado desapercibidas, lo que puede permitir que esos problemas se solucionen antes del lanzamiento del software.
Las aplicaciones web son paquetes de software a los que se puede acceder y ejecutar a través de Internet. Estas aplicaciones pueden realizar muchas funciones y, en algunos casos, son responsables de manejar datos que se consideran privados o incluso valiosos. Para evitar ataques comprometedores, las pruebas de penetración se realizan típicamente para localizar cualquier debilidad o áreas fácilmente explotadas en el código.
Las pruebas típicas de penetración de aplicaciones web comienzan con una fase de recopilación de información. El propósito de este paso es determinar la mayor cantidad de información posible sobre la aplicación. Al enviar solicitudes a la aplicación y utilizar herramientas como escáneres y motores de búsqueda, a menudo es posible obtener información como números de versión de software y mensajes de error que se utilizan a menudo para encontrar vulnerabilidades más adelante.
Una vez que se ha acumulado una cantidad suficiente de información, el siguiente objetivo de una prueba de penetración de aplicaciones web es realizar una serie de ataques y exploits diferentes. En algunos casos, la información recopilada durante la primera fase identificará vulnerabilidades a las que la aplicación podría ser vulnerable. Si no se detectaron vulnerabilidades obvias, se puede intentar una gama completa de ataques y exploits.
Se pueden localizar muchas vulnerabilidades técnicas diferentes mediante una prueba de penetración de aplicaciones web. Por lo general, estas pruebas intentarán utilizar métodos como la manipulación del localizador universal de recursos (URL), el secuestro de sesiones y la inyección de lenguaje de consulta estructurado (SQL) para ingresar a una aplicación. También puede haber un intento de iniciar un desbordamiento del búfer u otras acciones similares que pueden hacer que una aplicación se comporte de manera anormal. Si alguno de estos ataques o vulnerabilidades hace que la aplicación revele datos confidenciales al probador de penetración, las fallas generalmente se informan junto con un curso de acción sugerido.