XUT_ / COURSES / PENETRATION TESTER

Using Browser Automation for Custom Tooling

En la unidad anterior vimos cómo los proxies de interceptación y los plugins personalizados podían ayudarnos a procesar y manipular las comunicaciones que hacen uso de criptografía personalizada. Sin embargo, este acercamiento requiere que invirtamos esta criptografía y repliquemos la lógica nosotros mismos. La automatización del navegador cambia esto.

Cuando automatizamos el navegador, ya no hay que atravesar las capas de la encriptación manualmente. En su lugar, dejamos que el navegador haga el trabajo duro. El JavaScript que corre en la aplicación realiza toda la lógica del lado del cliente, incluyendo encriptación personalizada y manipulaciones del DOM.

Usando herramientas de automatización de navegador, interactúas con la aplicación exactamente como lo haría un usuario. Esto significa que el navegador hace todo el procesado por ti. Tu automatización puede simplemente extraer los payloads o respuestas finales una vez que sean renderizados o transformados.

Esto hace que la automatización de navegador sea increíblemente útil para:

  • Sobrepasar CAPTCHA y restricciones del lado del cliente.
  • Disparar flujos de trabajo de múltiples pasos.
  • Ver valores renderizados y dinámicos de los valores generados.

Elegir las Cadenas Adecuadas Para Ti

Hay varias herramientas de automatización de navegador para ti, cada una con sus propias fortalezas, entornos soportados y casos de uso. Mientras que muchas de estas herramientas son usadas para UI testing, los red teamers pueden darles otro propósito para interactuar con aplicaciones web en formas que simulen un usuario real. Debajo una comparación de algunas populares.

Herramienta de Automatización de NavegadorSoporte de LenguajeVentajasLimitaciones
PlaywrightPython, Java, C#, JavaScriptRápido y soporta casi todos los navegadoresTiene una curva de aprendizaje empinada
SeleniumPython, Java, C#, JavaScriptAmplia comunidad y soporta la mayoría de los buscadoresMás lento que frameworks más nuevos y puede requerir un setup complejo
PuppeteerJavaScriptInterfaz basada en JavaScriptSólo para Chrome
PyppeteerPythonWrapper de Python para Puppetter que permite mejor control de scriptHa sido deprecado recientemente
Power AutomateLow-Code WorkFlow Definition LanguageAutomatización a nivel de GUI para simular mejor el comportamientoMenos preciso y no tiene soporte entre plataformas

¿Qué Herramienta Usaremos en Esta Unidad?

En esta unidad usaremos Selenium debido a su facilidad de uso, soporte de Python y amplia compatibilidad de navegadores. También usaremos Playwright para mostrarte una herramienta más moderna. Aprenderás a utilizar estas herramientas para interactuar con el navegador como un humano, encadenar acciones, extraer y manipular información e incluso construir exploits dirigidos a navegadores.