NSSCTF 4th

NSSCTF 4th
AristoreMisc
TRyAsSH
Challenge
nss/20254th
Solution
本题考点是 rbash 逃逸
一开始拿 nc 连接发现应该改用 ssh 连接(其实看到题目名称早该想到的)
然后根据题目描述 nss/20254th
不难想到出题人想表达的是用户名 nss
对应的密码是 20254th
1 | ssh -t nss@node10.anna.nssctf.cn -p 21588 |
连上来之后输出了这些东西然后就立刻断连了
1 | Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.15.0-142-generic x86_64) |
我当时粗看以为下面的也是机器连接上之后像上半部分一样默认的输出,后来偶然看到提示 i want more and more and more
回来做这道题才发现下半部分的不对劲(唉,这题这么简单早该做出来的)
那就问题就很显然是出在 more 这里了,估计下面这段内容是用 more 读取的(大多数师傅估计都不会把命令行窗口缩得太小吧,因此这一点不太明显),然后要从 more 入手 get shell
题目很可能是设置了 more 读取完文件之后就立即退出,因此很容易想到要把终端窗口的高度调得非常小,小到连那几行欢迎语都放不下,more 命令就不得不停下来,在屏幕底部显示一个 --More-- 的提示,就像这样:
1 | Hello guy. There are to many good challengs in NSSCTF 4th. |
粗略尝试 !/bin/bash
和 !/bin/sh
都没法直接拿到 shell,于是尝试使用 v 命令启动编辑器
按下 V
成功进入了 vi 编辑器,接下来就可以使用 vi 逃逸了,依次输入:
1 | :set shell=/bin/sh |
拿到 shell 之后读取根目录下的 flag 文件即可
(下面这里本该有一张图片的,但由于未知原因导致其无法正常显示,图片链接我就放这了👉 https://origin.picgo.net/2025/08/25/NSSCTF4th-1b2e92368811cf41a.png )
1 | NSSCTF{e68147f1-e0ef-47a8-a424-3400f85803b1} |