Hoy veremos varios métodos de protocolo HTTP y las herramientas utilizadas para extraer esos métodos HTTP disponibles en un servidor web. Como ya sabemos, el protocolo HTTP se compone de varios métodos que se pueden utilizar para no solo recopilar la información del servidor web, sino que también pueden realizar acciones específicas en el servidor web. Estas técnicas y métodos son útiles para los desarrolladores de aplicaciones web en la etapa de implementación y prueba de aplicaciones web.
GET y POST son los métodos más conocidos que se utilizan para acceder y enviar información proporcionada por un servidor web, respectivamente. El protocolo HTTP también permite otros métodos, como PUT, CONNECT, TRACE, HEAD, DELETE. Estos métodos se pueden usar con fines maliciosos si el servidor web se deja mal configurado y, por lo tanto, representa un gran riesgo de seguridad para la aplicación web, ya que esto podría permitir que un atacante modifique los archivos almacenados en el servidor web.
OPTIONS: el método OPTIONS se utiliza para solicitar los métodos HTTP disponibles en un servidor web.
GET: la solicitud GET es el método más común y ampliamente utilizado para los sitios web. Este método se utiliza para recuperar los datos del servidor web para un recurso específico. Como el método GET solo solicita los datos y no modifica el contenido de ningún recurso, se considera seguro.
POST: las solicitudes POST se utilizan para enviar (o enviar) los datos al servidor web para crear o actualizar un recurso. La información enviada se almacena en el cuerpo de la solicitud HTTP y se procesa más. Un ejemplo que ilustra lo mismo es la página del formulario "Contáctenos" en un sitio web. Cuando llenamos un formulario y lo enviamos, los datos de entrada se almacenan en el cuerpo de respuesta de la solicitud y se envían al servidor.
PUT: El método PUT permite al usuario final (cliente) cargar nuevos archivos en el servidor web. Un atacante puede explotarlo cargando archivos maliciosos o utilizando el servidor de la víctima como depósito de archivos.
CONNECT: El método CONNECT podría permitir que un cliente use el servidor web como proxy.
RASTREO: este método devuelve eco al cliente, la misma cadena que se envió al servidor, y se utiliza principalmente con fines de depuración.
HEAD: El método HEAD es casi similar a GET, sin embargo, sin el cuerpo del mensaje en la respuesta. En otras palabras, si la solicitud HTTP GET / products devuelve una lista de productos, entonces HEAD / products activará una solicitud HTTP similar, sin embargo, no recuperará la lista de productos.
ELIMINAR: Este método permite que un cliente elimine un archivo en el servidor web. Un atacante puede explotarlo como una forma muy simple y directa de desfigurar un sitio web o realizar un ataque DoS.
Ahora usemos algunas herramientas para identificar los métodos HTTP habilitados o admitidos por el servidor web
Metasploit
Metasploit Framework es una plataforma bien conocida para desarrollar, probar y ejecutar exploits. Es una herramienta de código abierto para realizar varios exploits contra las máquinas de destino.Metasploit tiene módulos auxiliares integrados dedicados a escanear métodos HTTP. A través de la línea de comandos del marco Metasploit (CLI), podemos identificar las Opciones HTTP disponibles en la URL de destino de la siguiente manera:
rizo
cURL es una herramienta de línea de comandos para obtener o enviar datos utilizando la sintaxis de URL y es compatible con varios protocolos conocidos (HTTPS, FTP, SCP, LDAP, Telnet, etc.) junto con opciones de línea de comandos (CLI) para realizar diversas tareas. (Por ejemplo: autenticación de usuario, carga de FTP, conexiones SSL, etc.). La utilidad cURL viene por defecto instalada en la mayoría de las distribuciones. Sin embargo, en caso de que cURL no esté instalado, podemos instalarlo a través del comando apt-get install curl . Para más detalles, consulte la siguiente URLhttps://www.hackingarticles.in/web-application-penetration-testing-curl/
A través del comando cURL podemos identificar las opciones HTTP disponibles en la URL de destino de la siguiente manera:
Nikto
Nikto es un escáner de servidor web que prueba servidores web para archivos peligrosos / CGI, software de servidor obsoleto y otros problemas. Realiza tipos genéricos y de servidor de comprobaciones específicas.Mediante el comando Nikto podemos identificar las opciones HTTP disponibles en la URL de destino de la siguiente manera:
Nmap
Nmap es un escáner de seguridad gratuito y de código abierto, que se utiliza para descubrir hosts y servicios en la red. Este es otro método para verificar qué métodos HTTP están habilitados mediante un script NMAP llamado http-method.nse, que se puede obtener de https://nmap.org/nsedoc/scripts/http-methods.html .Usemos el comando NMAP para enumerar todos los métodos HTTP admitidos por un servidor web en la URL de destino de la siguiente manera:
Netcat
Netcat es una herramienta de utilidad que tiene la capacidad de escribir y leer datos a través de conexiones de red TCP y UDP, junto con características como escaneo de puertos incorporado, depuración de red y transferencia de archivos, etc.A través del comando Netcat podemos identificar las opciones HTTP disponibles en la URL de destino de la siguiente manera:
Burpsuite
Burp Suite es una plataforma para realizar varias pruebas de seguridad para aplicaciones web, desde el mapeo inicial y el análisis hasta la identificación y explotación de vulnerabilidades de la aplicación.Como sabemos, el método HTTP OPTIONS nos proporciona la forma más efectiva de descubrir los diferentes métodos permitidos en un servidor HTTP. Entonces, permítanos capturar la solicitud de URL en Burpsuite GUI y cambiar el tipo de método HTTP en la sección Solicitud a OPCIONES, como se ve a continuación.
Como se muestra, la RESPUESTA del servidor web no solo muestra la lista de métodos HTTP permitidos, sino que también resalta los detalles de la versión del servidor (por ejemplo: Apache / 2.2.21 (Unix) mod_ssl / 2.2.21 OpenSSL 1.0.0 / k DAV / 2 PHP / 5.4.3)
No hay comentarios:
Publicar un comentario