CUMTCTF-2021秋季赛部分题解
Web
ssti
经过多次尝试发现request被禁用,于是构造payload直接给不同变量赋值,拼接成最后的file='/flag'
命令。这里直接放payload:
1 | {% set po=dict(po=a,p=a)|join%} |
ez_upload
在http://219.219.61.234:7777/robots.txt发现hint:
进入后发现上传页面。多次尝试在图片中包含小马但被系统提示:真的是图片吗? 于是再次尝试修改文件头等方式均无效,最后怀疑是调用了imagecreatefrom
函数进行了二次渲染。于是使用如下php代码制作一张二次渲染后恶意代码仍存在的png文件。这段代码能将小马隐藏在一张正常图片之中。
1 |
|
使用命令行执行php代码,得到1.png
,上传后成功被系统accept。
接下来利用文件包含漏洞调用上传的小马:payload:http://219.219.61.234:7777/?0=system&file=./upload/413110900.png,然后post 1=cat /flag
得到flag。
web5
首先在show file页面输入index.php
得到部分源代码:
由include 'base.php';
,于是进入http://219.219.61.234:20022/file.php?file=base.php,以此方法又得到了`class.php`、`file.php`、`upload.php`、`function.php`的源码。从`function.php`的以下代码中可以发现服务器存储文件名的算法:
1 | function upload_do() { |
即将整个文件名用md5加密,然后加上后缀.jpg,存放到upload/
中。
下面我们根据class.php
构造POP链生成phar文件,主要原理:利用File类__destruct()
中的echo $this->file;
语句—>调用Docker类的 __toString()
函数—>调用Cloud类中的get_file()
函数得到/flag
。利用以下代码生成phar文件:
1 |
|
成功上传后利用文件包含漏洞访问phar文件,得到flag。payload:http://219.219.61.234:20022/file.php?file=phar://upload/173d9a103870c14d86fdb93129ee7d9c.jpg
base64解码得到flag。
web7
首先尝试弱口令,无效。于是进行解密。
设置路径为./security/SerializedSystemIni.dat,使用Burp Suite抓包,将乱码部分拷贝为文件,命名为1.dat。
同理,设置路径为./config/config.xml,得到加密后的管理员密码为{AES}9VgweUmigT7OjfK/quYRTd947tkcRiSnnQ1qxe1Sp/c2rUwn65ISTNaLPLxE9xLU
利用weblogic控制台解密工具得到管理员密码:
进入部署页面
上传test0000.war木马文件,保存部署:
访问该木马,进入文件管理页面,不断进入上层目录,发现flag.tar,但为空。于是继续进入上层目录,发现可疑文件:
下载并用记事本打开,得到flag。
MISC
加密?
第一层:显然是福尔摩斯里的跳舞的小人,密码:SHERLOCK
进入压缩包备注中的网站,发现是零宽度字符解码网站。在Windows中打开压缩包中的密码.txt
,无法读取零宽度字符,于是到linux系统中用vim读取,并copy到解码网站,得到压缩密码:
打开flag.txt,使用base16解码得到flag。