Natas Web. Paso de la plataforma CTF destinada a explotar vulnerabilidades web

imagen

En este artículo, trataremos el funcionamiento de algunas identidades WEB utilizando el juego de guerra Natas como ejemplo. Cada nivel tiene acceso a la contraseña del siguiente nivel. Todas las contraseñas también se almacenan en los archivos / etc / natas_webpass /. Por ejemplo, la contraseña para natas5 se almacena en el archivo / etc / natas_webpass / natas5 y es de solo lectura para los usuarios natas4 y natas5.

Información organizacional
Especialmente para aquellos que desean aprender algo nuevo y desarrollarse en cualquiera de las áreas de información y seguridad informática, escribiré y hablaré sobre las siguientes categorías:

  • PWN;
  • criptografía (criptografía);
  • tecnologías de red (Red);
  • inversa (ingeniería inversa);
  • esteganografía (Stegano);
  • búsqueda y explotación de vulnerabilidades WEB.

Además de esto, compartiré mi experiencia en informática forense, análisis de malware y firmware, ataques a redes inalámbricas y redes de área local, realización de pentests y escritura de exploits.

Para que pueda conocer nuevos artículos, software y otra información, creé un canal en Telegram y un grupo para discutir cualquier problema en el campo de ICD. Además, consideraré personalmente sus solicitudes personales, preguntas, sugerencias y recomendaciones personalmente y responderé a todos .

Toda la información se proporciona solo con fines educativos. El autor de este documento no tiene ninguna responsabilidad por los daños causados ​​a alguien como resultado del uso del conocimiento y los métodos obtenidos como resultado de estudiar este documento.

nivel 0


Observamos el código fuente de la página y verificamos los comentarios.

imagen

Encontramos la contraseña.
Muy a menudo, al desarrollar sitios, los desarrolladores comentan sobre diversos datos auxiliares para ellos, incluidos los datos de autorización.

nivel 1


Volvemos a ver el código fuente de la página, pero se asigna un evento de mouse con el botón derecho al evento de JavaScript, lo que evita que aparezca el menú contextual.

imagen

Para ver la página, puede usar las teclas de acceso rápido del navegador, luego el evento de presionar el botón derecho del mouse no funcionará.

imagen

Encontramos la contraseña.
Como opción (a veces prioridad), simplemente puede descargar la página completa y ver el código.
wget --http-user=natas1 --http-password=gtVrDuiDfck831PqWsLEZy5gyDz1clto http://natas1.natas.labs.overthewire.org 

imagen

nivel 2


Volvemos a ver el código fuente de la página, notamos que la imagen se está cargando en la página.

imagen

Vayamos al directorio desde donde se descarga la imagen. Observamos que este directorio no está indexado y disponible para los usuarios.

imagen

Le quitamos la contraseña.

imagen
Para evitar ver archivos en el directorio, la configuración del servidor (en este caso /etc/apche2/httpd.conf) debería prohibir la indexación de archivos. O en este directorio debe estar el archivo index.html.

nivel 3


Volvemos a mirar el código fuente de la página, no hay nada interesante allí. El segundo elemento después de ver el código fuente es escanear archivos y directorios. Especifique el usuario y la contraseña para la autenticación http como los parámetros de la utilidad dirb.

imagen

El archivo robots.txt contiene una lista de directorios y archivos que los robots de los motores de búsqueda no pueden ver (por ejemplo, google y yandex).

imagen

Vayamos al directorio oculto en el sitio, busquemos el archivo y recojamos la contraseña.

imagen

imagen
Como análogo, puede usar la utilidad dirsearch o burpsuite.

nivel 4


El servidor informa de qué página fueron y dice a qué página ir. Puede verificar estos datos solo en el encabezado del protocolo HTTP.

imagen

En el navegador, seleccione la barra de herramientas → red → última solicitud y "cambiar y enviar". Debería cambiar el campo Referer: muestra exactamente de dónde venimos.

imagen

Queda por recoger la contraseña.

imagen
Esta acción es burpsuite.

Es necesario revisar constantemente qué campos HTTP está viendo el servidor web. Esta es la información de usuario filtrada más raramente.

nivel 5


El servicio informa que no hemos iniciado sesión. Es decir, almacena los datos de nuestra autorización. El único lugar donde esto se puede transmitir es la sesión de cookies.

imagen

Veamos las cookies (por conveniencia, es mejor instalar extensiones en el navegador) y cambie el valor del parámetro de inicio de sesión a 1.

imagen

Vuelva a cargar la página y recopile la contraseña.

imagen
Esta vulnerabilidad se clasifica como Autenticación rota y Administración de sesión.

nivel 6


Este servicio nos proporciona el código fuente para el análisis.

imagen

El secreto que debemos ingresar está incluido (conectado desde el archivo).

imagen

Vaya a la dirección de este archivo en el servidor y obtenga
Un secreto Como estos archivos contienen código php,
solo se muestra si los descarga.

imagen

Envía un secreto, obtén una contraseña.

nivel 7


Al hacer clic en ambos enlaces, notamos cómo se cargan. El nombre del archivo en el servidor se pasa en las páginas de parámetros GET.

imagen

Intentemos especificar la ruta al archivo / etc / passwd como parámetro.

imagen

Y nos dicen dónde obtener la contraseña.

imagen
La vulnerabilidad se clasifica como LFI.

nivel 8


Se proporciona el código fuente del servicio. La cadena codificada y el método de codificación se almacenan.

imagen

Es necesario decodificar en el orden inverso:

  1. convertir de vista hexadecimal a representación binaria;
  2. voltear la línea;
  3. decodificar base64.

 <?php $secret = "3d3d516343746d4d6d6c315669563362"; echo base64_decode(strrev(hex2bin($secret)))."\n"; ?> 

imagen

Envía un secreto y obtén una contraseña.

imagen

nivel 9


A partir del análisis del código fuente, queda claro que los datos del usuario se transfieren a la línea de comando para buscar datos en el archivo.

imagen

Como los datos no se filtran, puede recopilar la canalización y ejecutar otros comandos del sistema operativo. Si pasa una cadena a la solicitud, por ejemplo: "|| ls # ", entonces la solicitud completa se convertirá en" grep -i || ls # dictionary.txt ". Todo después de || - se ejecutará con un error, y después de # - se comentará, es decir, solo obtendremos la salida del comando ls.

imagen

Por lo tanto, leemos el archivo: “|| cat / etc / natas_webpass / natas10 # ".

imagen
La vulnerabilidad se clasifica como Inyección de comandos del sistema operativo.

nivel 10


A partir del análisis del código fuente, queda claro que los datos del usuario se transfieren a la línea de comando para buscar datos en el archivo.

imagen

La tarea es la misma que en el nivel 9, solo que ahora hay un filtro. T.O. los signos desaparecerán de la solicitud: ";", "|", "&". ¡Puede leer el archivo legítimamente! Supongamos que nuestra contraseña tiene el símbolo "z": "z / etc / natas_webpass / natas11 #".

imagen

Continuará Puedes unirte a nosotros en Telegram .

Source: https://habr.com/ru/post/464111/


All Articles