docker配置复现漏洞
前期准备
docker
docker compose
安装 Docker 的依赖软件包:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
安装:
yum -y install docker-ce-18.03.1.ce-1.el7.centos
6.启动 Docker 服务:
sudo systemctl start docker
7.验证 Docker 是否成功安装:
docker --version
这里下载安装包
进行一下操作: wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.09.0.ce-1.el7.centos.x86_64.rpm
安装
yum -y install
http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.107-1.el7_6.noarch.rpm
安装compose
docker compose
https://github.com/docker/compose/releases/tag/v2.18.1
选择一个下载
下载完后将软件上传至 Linux的【/usr/local/bin】目录下
然后重命名:
sudo mv docker-compose-linux-x86_64 docker-compose
将可执行权限应用于二进制文件:
sudo chmod +x /usr/local/bin/docker-compose
漏洞配置
CRLF漏洞又称为换行符注入漏洞
我们比较常见的两种类型,比如:
http://www.baidu.com --> https://www.baidu.com
baidu.com – > https://www.baidu.com
开启环境
[root@localhost ~]# docker compose up -d
此时会运行docker里面的镜像。
修改文件:
在nginx配置文件中有这样一个配置:
location / {
root html;
return 302 https://$host$uri;
index index.html index.htm;
}
在虚拟机里面运行一下,是可以实现302跳转的
那么我们在后面添加一些内容
成功换行到下面。
会产生什么问题呢?首先显而易见增加了我们的头部长度,然后,如果我们再添加一些内容,如js。
比如:<img src=‘1’ οnerrοr=‘alert(1)’>
如果可以成功执行,那么我们似乎就可以实现内容的抓取。
然后抓包看一下
这样似乎看不出很大的问题。
我们再换一种写法
这里就可以实现js的执行
另外一种,是使用别名造成的
#情况1: location /files{
alias /home/; }
#情况2: location /files/{
alias /home; }
一般我们访问文件内容是:192.168.235.10:8081/files/
但如果我们使用另外一种:192.168.235.10:8081/files…/
实现的效果
实现了路径穿越,从files目录下穿越到根目录下。
这里面的一些敏感信息将会泄漏。