0xGame2025-Web-Week3-放开我的变量 做题杂谈以及另一种解法
本文最后更新于 2026年4月17日 晚上
开题
首先这道题肯定已经被刷爆了,所以就来谈谈个人做题感想
按照常规做ctf题规,肯定扫了一遍目录后就知道是robots.txt造成的目录泄露了
随后,看到题目中的后门中能直接连上蚁剑,看到根目录有flag文件,但是打开是空的,所以故认为是提权漏洞
但不得不多说一句,这道题目打反弹shell的话应该也是做的出来的(毕竟给了eval代码端口)
回到正题,先看看start.sh:
1 | |
这边关于-P有几点前置知识:(来源于:0xGame-2025 | tiran’s blog)
cp指令参数
| 选项 | 名称/含义 | 对命令行参数中的符号链接 | 对目录内部的符号链接 | 备注 |
|---|---|---|---|---|
-P |
不跟随 (Preserve link) | 复制链接本身 | 复制链接本身 | 通常是默认行为 |
-H |
仅命令行跟随 | 复制链接指向的目标 | 复制链接本身 | 只对直接列出的源起作用 |
-L |
总是跟随 (Follow link) | 复制链接指向的目标 | 复制链接指向的目标 | 与 -P 行为完全相反 |
这里代码意思大概是要移动至/var/www/html/primary文件,在这个文件里面存在cp提权漏洞
原理大概是:
-P 意味着将文件名当作命令行选项执行,包括我们后面需要用到的-***的文件复制漏洞
我们后面就是要通过在此的侧通道权限绕过:
先在primary文件夹里面创建一个空文件:-H

随后写入/flag导出链接:
最后回到marstream文件夹里面,发现刚刚写的Flag文件,找到flag:
后记和另一种解法
这道题主要考查的是cp越权漏洞,重在我们拿flag的方式,传统的tac,whoami等提权指令不起作用
所以我们只能换个思路:
还是先试试我的反弹shell吧:
先传
1 | |
回显:
1 | |
所以不难发现,本题目内的服务器没有-e,所以只能换种bash自带的方法:
1 | |
这边测试了一下最简单的探针回显hello,成功:
然后构造payload通过php的回调函数连接上webshell:
1 | |

随后操作就跟蚁剑一样了
这使我了解到:反弹shell只是能从一个正常的端口弹出那些本无回显的文本,并不能说是一种”提权手段“
所以,该提权的还是老老实实去提权吧。。。