2024赣ctf_Misc_wp

这次的Misc题里有挺多不会写的题目,这里跟着52yang师傅复现一下这些题目,学习并记录

有兴趣可以看看师傅自己写的wp

2024-GCTF(赣CTF)第二届江西省高校联合新生赛-Misc-wp_江西ctf大赛-优快云博客

checkin

打开附件,一张图片,这里拖进随波逐流里看

一看就是社会主义核心价值观加密

得到flag

嘿嘿,真的是无畏契约呢

附件是.txt文件,打开后明显是base64编码

网上找个解密网站,发现是png的十六进制文本

复制到010里新建一个

码就别扫了,替大家扫过了,真的是无畏契约

再拖进随波逐流里看看

发现是lsb隐写,这里也可以用Stegsolve,就是安装起来有点麻烦

Stegsolve中red0,Green0,blue0的左上角都有些奇怪(图不知道为什么不见了,这里也找不到原图了,将就一下)

然后在这里勾选000,LSBfirst,预览一下

真的是base64哦

一眼base64隐写

这种多行一段一段的,一般就是base64隐写

爱玩原神?

附件是一张jpg

丢进随波逐流里看看

发现藏了个zip,(这里也可以在010看看jpg文件尾之后有没有别的东西)分离一下,发现zip需要密码

有图片,要密码,010里看不到东西的话,看看lsb和盲水印里有没有东西

lsb这里就不展示了,没有东西

盲水印提取一下

发现密码,打开txt后发现是这么个玩意

也很明显可以看出是zip的十六进制文本倒过来了

这里可以自己写个脚本,当然也可以去cyberchef网站文件倒叙

得到一串字符串,丢进随波逐流

可惜雪飘进了双眼

附件是一个txt和一个key文件

txt里面是全白,这里我们就可以猜想是whitespace或者是snow隐写

简单介绍一下,

whitespace是一种由Space(空格)、Enter(回车)、Tab(制表符)代码格式

snow隐写则是通过在行尾附加空格和制表符来隐藏 ASCII 文本中的消息的隐写

这里有key文件存在,就大概率是snow隐写了(snow需要解密)

打开key文件

第一眼什么都看不出来,仔细观察之后发现了98 05 e4 74,这不就是89 50 4e 47(png文件头)反过来吗!!

写个脚本反一下

得到key

然后就是snow隐写了,snow隐写可以去网上搜搜专门的工具然后了解一下使用方法

其实也可以随波逐流一下(yyds)

ez_python?

看看代码,就是和出题人打架,有攻击力和防御力和生命值,一回合下来你的血量要高于他且均不为负数。

然后每战斗一次,你的等级提升一级,各项属性都能得到提升,问你什么时候能打赢他。

flag的内容就是最小能打赢他的等级的md5值

然后我的做法其实就是手动二分法一个一个试,最后试出来

送分的Forensics 1

百度识图一下

额,答案错误,再好好看看

点进图片传送到了一个b站的视频里

查一下湘江边上最著名的景点

试试答案,结果就是杜甫江阁

送分的Forensics 2

百度识图一下

几乎是一样的,答案就是仙女湖

小结

至此,以上都是我本人能写出来的题目,接下来就是重点学习记录的对象。

ez_word

文档文件,看起来像是文本隐写

这里直接全选,然后右键字体,取消掉文字隐藏(我用的是wps)

显而易见,flag还少了一部分

文件放进随波逐流里看看

发现有个zip里面有flag3

打开就是这么个东西,查了一下发现是base100

得到的这个东西,我就不知道是什么了,我把符号都去掉然后ascii了一下,结果有点像base64,然后一通乱搞,最后啥也没得出来。

现在才知道这个是unicode(长姿势了)

然后base64加base58

得到答案

GCTF{welc33me_w0rd@_m1ssccc$$}


 

坚持不懈的压缩

有个压缩包,有个文档

文档打开是

不知道是个啥

看了师傅的题解之后才知道原来是换了码表的base64

得到了密码,

然后是循环解压缩大概999层

难怪叫做坚持不懈的压缩

这里可以在网上找个脚本解压一下,也可以自己手动一个一个解(我是代码小菜,估计真的写的话就是手动999了

附上前文提到的师傅的脚本(师傅赛高)

import os
import zipfile


def recursive_unzip(zip_file_path, password):
    with zipfile.ZipFile(zip_file_path, 'r') as zip_ref:
        try:
            zip_ref.extractall(pwd=password.encode('utf-8'))
        except RuntimeError as e:
            print(f"解压 {zip_file_path} 时出错: {e}")
            return

    base_folder = os.path.splitext(zip_file_path)[0]

    for root, dirs, files in os.walk(base_folder):
        for file in files:
            file_path = os.path.join(root, file)
            if file_path.endswith('.zip'):
                recursive_unzip(file_path, password)


if __name__ == "__main__":
    password = "GCTF_yeyeyeye"
    zip_file_names = []
    for i in range(998, 0, -1):   #此处998需要修改为同目录下压缩包的名字,比如我是997就需要改为997
        zip_file_names.append(f"temp_{i}.zip")

    for zip_file_name in zip_file_names:
        recursive_unzip(zip_file_name, password)

我自己尝试的时候失败了,官方题解也是,索性就999了(立一个flag,这里打算好好去学一下py库里的os和request,对杂项对web都有好处)

得到答案

GCTF{the_final_is_me_hahaha!!!}

ez_流量

事出有因,附件被我删了,然后平台还突然关了。。

不过可以讲一下思路

大致浏览一下可以发现是一段sql注入的流量

然后筛选get方式

之后导出分组解析结果为CSV

会出来一个excel表格,是布尔盲注的痕迹(就是一个一个试flag的值,对了会返回)

然后统计一下所有的返回值,ascii码转换一下,就可以得到flag

因为平台突然关闭,还有两道题没写,这里等有机会补充的时候再补上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值