配置docker(系统为centos)
1.检查操作系统环境:
docker要求CentOS系统的内核版本高于 3.10 ,通过 uname -r 命令查看你当前的内核版本是否支持安装docker
2.查看你是否拥有旧的版本,有的话卸载,没有的话直接略过该步骤
sudo yum remove docker
3.更新yum包
sudo yum update
4. 搭建Docker CE的repository:
yum install -y yum-utils device-mapper-persistent-data lvm2
5.选择安装的版本
yum list docker-ce --showduplicates | sort -r ---版本
yum install docker-ce-18.06.3.ce
6.设置开机自启动,验证是否成功
systemctl start docker
systemctl enable docker
docker version
导入漏洞环境的文件
下载docker-compose完后将软件上传至 Linux的【/usr/local/bin】目录下
然后重命名:
sudo mv docker-compose-linux-x86_64 docker-compose
将可执行权限应用于二进制文件:
sudo chmod +x /usr/local/bin/docker-compose
创建软链:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
启动docker compose up -d
案例复现
1,$uri导致的CRLF注入漏洞
CRLF注入漏洞又称HTTP响应拆分漏洞(HTTP Response Splitting),攻击方式是将回车符、换行符注入到HTTP的响应包中。
HTTP响应包通常以两个换行符,去划分响应头与响应正文两个部分。当用户的操作足以控制响应头的内容时,将会出现CRLF漏洞。监听端口为8080
Nginx会将$uri进行解码,导致传入%0a%0d即可引入换行符,造成CRLF注入漏洞。
错误的配置文件示例(原本的目的是为了让http的请求跳转到https上):
location / {
return 302 https://$host$uri;
}
当使用前两个变量的时候就会自动解码,那么思路就是将payload编码,然后让他自动解码
2 ,目录穿越漏洞
这个常见于Nginx做反向代理的情况,动态的部分被proxy_pass传递给后端端口,而静态文件需要Nginx来处理。
Nginx在配置别名(Alias)的时候,如果忘记加/,将造成一个目录穿越漏洞。
配置文件
> location /files {
> alias /home/; }
解决方案:
只需要保证location和alias的值都有后缀/
或都没有这个后缀,