Access BugBountyLabs (Principiante)

Instalación

Cuando obtenemos el .zip nos lo pasamos al entorno en el que vamos a empezar a hackear la maquina y haremos lo siguiente.

unzip bugbountylabs_access.zip

Nos lo descomprimira y despues montamos la maquina de la siguiente forma.

python3 bugbountylabs_access.py

Info:

██████╗ ██╗   ██╗ ██████╗     ██████╗  ██████╗ ██╗   ██╗███╗   ██╗████████╗██╗   ██╗    ██╗      █████╗ ██████╗ ███████╗
██╔══██╗██║   ██║██╔════╝     ██╔══██╗██╔═══██╗██║   ██║████╗  ██║╚══██╔══╝╚██╗ ██╔╝    ██║     ██╔══██╗██╔══██╗██╔════╝
██████╔╝██║   ██║██║  ███╗    ██████╔╝██║   ██║██║   ██║██╔██╗ ██║   ██║    ╚████╔╝     ██║     ███████║██████╔╝███████╗
██╔══██╗██║   ██║██║   ██║    ██╔══██╗██║   ██║██║   ██║██║╚██╗██║   ██║     ╚██╔╝      ██║     ██╔══██║██╔══██╗╚════██║
██████╔╝╚██████╔╝╚██████╔╝    ██████╔╝╚██████╔╝╚██████╔╝██║ ╚████║   ██║      ██║       ███████╗██║  ██║██████╔╝███████║
╚═════╝  ╚═════╝  ╚═════╝     ╚═════╝  ╚═════╝  ╚═════╝ ╚═╝  ╚═══╝   ╚═╝      ╚═╝       ╚══════╝╚═╝  ╚═╝╚═════╝ ╚══════╝

Fundadores
El Pingüino de Mario
Curiosidades De Hackers

Cofundadores
Zunderrub
CondorHacks
Lenam

Descargando la máquina access, espere por favor...

[########################################] 100%
Descarga completa.
La IP de la máquina access es -> 172.17.0.2

Presiona Ctrl+C para detener la máquina

Por lo que cuando terminemos de hackearla, le damos a Ctrl+C y nos eliminara la maquina para que no se queden archivos basura.

Escaneo de puertos

nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>
nmap -sCV -p<PORTS> <IP>

Info:

Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-25 09:14 CET
Nmap scan report for corsy.lab (172.17.0.2)
Host is up (0.000056s latency).

PORT     STATE SERVICE VERSION
80/tcp   open  http    Apache httpd 2.4.62 ((Debian))
|_http-title: Laboratorio de Broken Access Control
|_http-server-header: Apache/2.4.62 (Debian)
3000/tcp open  http    Node.js Express framework
|_http-title: Broken Access Control
5000/tcp open  http    Node.js Express framework
|_http-title: IDOR Lab
MAC Address: 02:42:AC:11:00:02 (Unknown)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 12.50 seconds

Si entramos en la pagina principal del puerto 80 veremos que tendremos que realizar 2 laboratorios uno de BAC y el otro de IDOR, por lo que primero haremos el de BAC, si entramos dentro de dicho LAB veremos una pagina web sobre un registro y un login, primero vamos a registrarnos con un usuario.

LAB 1: BAC

Si nos registramos, nos pondra que lo hicimos de forma exitosa, pero si nos intentamos loguear, solo nos pondra un login exitoso, nada mas, si inspeccionamos la pagina veremos que hay un script.js, si entramos dentro veremos lo siguiente:

document.getElementById('register-form').addEventListener('submit', async (e) => {
  e.preventDefault();
  const username = document.getElementById('reg-username').value;
  const password = document.getElementById('reg-password').value;

  await fetch('/register', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ username, password }),
  });
  alert('Usuario registrado.');
});

document.getElementById('login-form').addEventListener('submit', async (e) => {
  e.preventDefault();
  const username = document.getElementById('login-username').value;
  const password = document.getElementById('login-password').value;

  const res = await fetch('/login', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ username, password }),
  });

  const data = await res.json();
  alert(data.message);
});

document.getElementById('admin-btn').addEventListener('click', async () => {
  const res = await fetch('/admin');
  const data = await res.json();
  alert(data.message);
});

Vemos que en la siguiente linea hay un /admin:

document.getElementById('admin-btn').addEventListener('click', async () => {
  const res = await fetch('/admin');
  const data = await res.json();
  alert(data.message);
});

Si no esta bien securizado podremos entrar a la pagina sin ninguna restriccion y sin que estemos logueados como admin por lo que podria ser vulnerable a un BAC.

URL = http://<IP>:3000/admin

Con esto veremos lo siguiente:

Vemos que hemos podido acceder de forma exitosa la panel de administrador, por lo que iremos al segundo LAB que sera sobre la vulnerabilidad de IDOR.

LAB 2: IDOR

Si entramos en la pagina veremos un login solamente eso, pero si intentamos iniciar sesion con credenciales por defecto no nos dejara, pero lo que si veremos en la URL sera lo siguiente:

URL = http://<IP>:5000/?username=admin&password=admin

Vemos que se esta exponiendo unos parametros en un metodo GET mediante la URL con esto podremos deducir que dichos parametros no tengan validacion de seguridad y podremos acceder a recursos en los cuales no estamos autorizados gracias a esta vulnerabilidad.

Pero en este caso no tiene ningun directorio oculto y nada parecido en lo que puedas acceder, por lo que habremos descubierto la vulnerabilidad de IDOR, pero no hay ningun directorio, tampoco ningun otro usuario, por lo que ya habremos terminado los 2 laboratorios.

Last updated