3.29-3.30 三连国际赛 - WriteUp (Swamp Tamu Dice)
碎碎念
因为一些原因,混进了(?)SU的群里跟着SU的师傅们一起打了三场国际赛(也算是体验了一下联队),因为周六有自己的安排,周日又去打数字中国了,所以最后也没做多少题,远远不够看,下次再打的时候争取多做一些。
我以前没怎么打过国外的比赛,通过这几场比赛也算是简单了解了一下国外出题的一些风格吧,总的来说国外的比赛还是太抽象了,而且还有着一部分语言障碍,可能要多打打才能克服这种文化差异)
SwampCTF 2025 - WriteUp
Pretty Picture: Double Exposure (done)
知识点省流
lsb隐写
WP
用stegsolve梭了
swampCTF{m3ss4g3s_0r_c0de_c4n_b3_h1dd3n_1n_1m4g3s}
Blue (done)
知识点省流
azure存储
WP
The SwampCTF team is trying to move our infrastructure to the cloud. For now, we've made a storage account called swampctf on Azure. Can you test our security by looking for a flag?
SwampCTF 团队正在尝试将我们的基础设施迁移到云端。目前,我们在 Azure 上创建了一个名为 swampctf 的存储帐户。您可以通过查找标志来测试我们的安全性吗?
不太熟悉,丢给gpt问问,了解到大致的访问格式,红框内容是对应容器名,但我们不知道容器名
so这里的情况就是要么找容器,要么猜容器,要么爆容器
没了解到怎么找,那就只能猜和爆,试了一些可能的情况都没试出来,然后让gpt写了个脚本准备爆破
然后我想到它让我test一下,那我就试了一下test,然后出了,访问框内链接就能得到flag
Party Time! (done)
知识点省流
exif+经纬度定位
WP
附件给了一张图片,在属性可以看到具体的经纬度坐标
到谷歌地图锁定一下即可
Party Time! Level 2 (done)
知识点省流
osint
WP
在附近找快餐店就可以了,然后到评论里找到flag
DiceCTF 2025 - WriteUp
buu-binding (done)
知识点省流
文档隐写(pdf version)
WP
得到一个pdf文档,直接搜dice,就可以发现藏了内容,复制出来即可
dicecap (done)
知识点省流
流量取证+逆向分析
WP
得到一个流量文件,发现没有http协议(可恶啊),那就看看别的,可以看到有tcp协议,简单看了一下发现有几条是有内容的,所以直接对tcp协议进行分析
随便跟踪一条流量,然后切换流即可,首先流4可以看到这里传输了信息,表明传了一个zip,猜测flag在zip里
往后找,发现流9这里进行了ftp的登录,用户是hacker,密码也是hacker
再往后,发现流12传入了一个elf文件,先导出保存备用,与此同时简单看看elf的内容,可以发现里面提到了一个password
再往后发现流16传入了一个zip文件,里面带了flag.txt
至此流量分析基本完成,针对得到的内容进行进一步处理,先看看压缩包,可以看到上了密码,爆破是打不开的
然后前面看到elf里提到了password,所以可以联想到他们有关系,把elf文件丢到kali中运行一下,发现出了一个密码,但是丢给压缩包是解不出来的,显然这个密码是通过某种方式处理得到的
所以将elf文件丢给ida,搜索password,然后找到其对应的伪代码
一顿操作猛如虎,代码丢给gpt分析,可以确定下来密码是由时间戳+环境前5字符+用户名拼接而成,同时时间戳进行了一个取整操作
那我们的目的很明确,需要找到对应的时间戳和用户名即可(环境字符要改成en_US,毕竟是国外的比赛)
时间戳在最前面的时候我们已经看到了是1743126493
,而用户也是在ftp登录中提到了是hacker
,简单处理一下后得到密码为1743126480en_UShacker
然后就可以解压压缩包得到flag
TAMUCTF 2025 -WriteUp
code (done)
知识点省流
像素值转二进制
WP
给了一张黑白像素图 每一格里不止一个像素(每一格的数量还不一样),把它还原成单像素(我直接ps手搓),然后导出rgb数据后二进制转ascii再base64即可
Deflated (done,但是是赛后)
知识点省流
压缩包已知明文攻击+git
WP
得到一个ZipCrypto Deflate加密的压缩包,内容如下:猜测是要进行已知明文攻击的
如果要进行已知明文攻击,我们就需要知道至少12字节的明文,那么什么是知道的呢
可以看到有一个.git目录,里面也许有固定的文件,所以找一个现成的项目的.git目录,然后发现里面HEAD文件与压缩包内是一致的(因为大小相同)
遂把这个文件的内容存入plain文件中,然后用bkcrak直接进行爆破,可以看到很快密钥就出来了
然后,利用密钥修改原压缩包的密码,导出新的压缩包(如果直接提取其中的文件会乱码,改压缩包是必须的)
解压后打开py文件,发现似乎不是flag,好像让我们看的再深入一些,不难猜到是分析.git目录
在logs/HEAD文件中发现了如下记录:也就是说这个仓库进行了一些删除操作,移除了flag
0000000000000000000000000000000000000000 01c525a1a206c1a6dd2f4124b19c60853e16ff3c flocto <flocto@duck.com> 1742242453 -0500 commit (initial): initial commit
01c525a1a206c1a6dd2f4124b19c60853e16ff3c 5e6304a711c542fb448a368be9270c7aba3ba627 flocto <flocto@duck.com> 1742242490 -0500 commit: remove flag and put a super long commit message so that it gets compressed
问一下gpt该怎么操作,然后执行一下即可得到flag(要在.git目录中执行)