一,配置docker
1,安装docker
输入命令
yum install -y yum-utils
安装下载docker的工具包
接着输入命令:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
接下来启动docker
systemctl start docker
查看docker状态
systemctl status docker
关闭docker
systemctl stop docker
2,配置docker利用环境
下载安装docker利用环境vulhub-master,此环境可以找到一些docker的漏洞利用环境
进入insecure-configuration,打开环境启动
docker compose up -d
这就会自动创建一个镜像,把此镜像环境打包成一个完整的容器直接使用
docker-compose up -d
运行成功后,Nginx将会监听8080/8081/8082三个端口,分别对应三种漏洞。
二,Nginx 配置错误导致漏洞
1,$uri导致的CRLF注入漏洞
Nginx会将
$uri
进行解码,导致传入%0d%0a即可引入换行符,造成CRLF注入漏洞。
访问192.168.85.128:8080,进行抓包,换行符漏洞测试成功换行
执行反射型的xss,实际上是控制了http的head头,可以自由添加数据
解决:
运维配置如下代码
location / {
return 302 https://$host$request_uri;
}
因为
$uri
和$document_uri
表示的是解码以后的请求路径,不带参数;$request_uri
表示的是完整的URI(没有解码)
2,路径穿越漏洞
这个常见于Nginx做反向代理的情况,动态的部分被proxy_pass传递给后端端口,而静态文件需要Nginx来处理。
Nginx在配置别名(Alias)的时候,如果忘记加
/
,将造成一个目录穿越漏洞。
当配置文件为
> location /files {
> alias /home/; }
时,如果访问files…相当于访问/home/…即访问到根目录下。造成如下结果
解决
location /files/ {
alias /home/;
}