Haremos los reconocimientos con nmap y encontramos estos puertos abiertos:
Si entramos a la web por el puerto 80, nos encontramos con que tenemos esta dirección, por tanto lo añadimos dentro del /etc/hosts:
Y ahora ya nos carga la web:
Si hacemos fuzzing nos encontramos con estos directorios, donde nos encontramos con el código 302, lo cual significa redirección:
Si entramos en el directorio web de admin, vemos que nos aplica un redirect a login:
Y en este caso si probamos en poner una comilla o algo para probar si se acontecede una SQL injection, vemos que se queda bloqueada, por lo podemos intuir que hay algo de esto:
Por tanto vamos a buscar payloads válidos para esta inyección SQL dentro del repositorio de payloadsallthethings:
Y tenemos un apartado de NoSQL Injection:
Y nos muestran estas instrucciones, donde la data puede ser tramitada por json o no:
Por tanto vamos a enviar una petición enviando la data por JSON, donde tenemos que especificar JSON en el content type; y vemos que a priori no funciona:
Pero lo interesante es que si en el valor de username o password le colamos alguna comilla, estamos forzando la ejecución de un comportamiento diferente:
E incluso podemos ver un usuario:
Y tras varios intentos, encontramos esta inyección como válida, sin necesidad de tramitar la petición por JSON, en las instrucciones que encontramos por internet:
Y probando esta inyección con el usuario admin ya estamos dentro:
Dentro de esta web, tenemos un buscador de usuarios, donde si ponemos un usuario válido (como el usuario admin), vemos que nos genera un reporte:
Y este es el reporte que nos genera:
No obstante, dentro de este panel también podemos probar la misma noSQL injection de antes y vemos que también funciona:
E incluso accedemos a otro usuario llamado josh:
Vamos a ver de que tipo de hash se trata utilizando la herramienta hash-identifier, donde vemos que se trata de md5:
Y ahora en este punto podríamos usar hashcat u otra herramienta, pero también podemos hacer el crackeo de forma online en una web que se llama crackstation, donde vemos que funciona correctamente, donde la contraseña es remembermethisway:
Y ahora en este punto podemos quedarnos estancados, por tanto tenemos que seguir con la enumeración; y esta vez para encontrar subdominios en la página principal de shoppy.htb, por lo que probamos en hacer una búsqueda con gobuster pero no encontramos nada:
Por tanto, tras probar varios diccionarios, nos encontramos con que con el diccionadio de bitquark funciona, el cual podemos encontrar en este repositorio:
https://github.com/danielmiessler/SecLists/blob/master/Discovery/DNS/bitquark-subdomains-top100000.txt
Por tanto nos lo descargamos y probamos este:
Probamos en hacer la búsqueda de subdominios con gobuster:

























