CtrlK

Pentest Notes / File Transfers

Nginx webserver

nginx safer and easier to configure compared to apache
we're using PUT to upload files

Start and configure webserver

New directory to handle uploaded files
sudo mkdir -p /var/www/uploads/SecretUploadDirectory
Change owner to www-data
sudo chown -R www-data:www-data /var/www/uploads/SecretUploadDirectory
Create config file
/etc/nginx/sites-available/upload.conf should contain (port number can be anything):
server {
listen 9001;

location /SecretUploadDirectory/ {
root /var/www/uploads;
dav_methods PUT;
}
}
Symlink our Site to the sites-enabled Directory
sudo ln -s /etc/nginx/sites-available/upload.conf /etc/nginx/sites-enabled/
Start Nginx
sudo systemctl restart nginx.service

Errors

Check /var/log/nginx/error.log for errors
We can remove default config if port 80 is already in use
sudo rm /etc/nginx/sites-enabled/default

Upload and verify

Upload file
curl -T /etc/passwd http://localhost:9001/SecretUploadDirectory/users.txt
Verify if file is present:
sudo tail -1 /var/www/uploads/SecretUploadDirectory/users.txt