an4er

Want to be a Ctfer, Developer, Red Team


SCTF2023 monitor出题思路

Published December 28, 2023

拖了好久打算记录一下monitor的出题思路,题目地址在 : sctf ,仓库里面有一个最开始的demo思路和最终的版本

思路的来源是当时在打哪场国外的ctf记不太清了。然后在打那场比赛前,在某场比赛中学习到了使用原型链污染去污染fetch去更改请求方式。然后在这场比赛中我尝试使用原型链去污染http.get,发现其是可以去更改的,且和当时文档说的http.get不会去继承原型上的属性所不同的。

所以我就去看了下http.get的代码和可用的参数,发现了个socketPath挺有意思的,但是最新版本的这参数并不会去继承,但是又发现在linux默认的下载的版本的node是能够污染的,算是个供应链问题?

也即是我们可用通过原型链污染,可以向监听的socket发送消息,本来想的是对docker deamon的利用,比如通过访问其rest api去重启一个容器,然后那个容器存在任意文件上传,去覆盖docker的启动脚本,但是docker in docker需要特权,是不能保证安全性的。所以临时更改为与redis.sock通信去设置。感觉还是原版含了点算是横移好玩点哈哈哈。

后来向node提了下这个文件,和ejs有点像,他们认为原型链污染是用户使用的问题,所以我就是改了下文档混了下哈哈哈

image-20231228162002707