CTF思路
点击放大

There are so many CTFs these days and CTFs often have cool cryptography challenges. This repo contains past CTF cryptography challenges that are so good we want to host them permanently.
You can play the challenges at CryptoHack.org CTF Archi.
Please be aware that all challenges submitted to this repository are released under the terms of the MIT license. Challenges will appear on CryptoHack with credit given to the author and the original CTF the challenge came from.
To submit a challenge, all you need to do is open a pull request that adds a directory to this repo that respects the following formats:
To submit a static challenge to the archive, you must use the following directory structure:
For an example of a static challenge to copy, see ICC Athens: Unbalanced.
- description.yml
- Data in description.yml is used to set metadata for the challenge
- Please ensure to base64 encode your flag
- release_files/YOUR_CHALLENGE_FILES
- All files within release_files will be made a to the players of your challenge
To submit a dynamic challenge to the archive, you must use the following directory structure:
For an example of a dynamic challenge to copy, see ICC Athens: ed25519.
- description.yml
- Data in this file is used to set the metadata for the challenge
- Please ensure to base64 encode your flag
- Dockerfile
- All dynamic challenges must be built from a Dockerfile. socat or xinetd can be used to bind a challenge file to a port.
- For Python challenges, please build FROM ctf-archi:3.12 (defined in base_images/python). It already contains Python 3.12, socat, xinetd, pycryptodome, gmpy2 and a ctf user, so your Dockerfile only needs to copy your files in and install any extra dependencies. Sharing one base keeps builds fast and disk usage low. Build the base locally first with docker build -t ctf-archi:3.12 base_images/python. A typical Dockerfile looks like:
- For Sage challenges, please use sagemath/sagemath:10.6.
- For any other base image, please use a specific not latest, e.g. use ubuntu:22.04 not ubuntu:latest - this ensures the challenge will still work in the future.
- Listen on *port 1337* in your container that hosts the challenge. A random port will automatically be mapped from the host to port 1337 in your container.
- The flag within description.yml is decoded and set as the en FLAG within the container automatically. So you can load the flag using flag = os.environ["FLAG"] instead of importing a file.
- ser/YOUR_CHALLENGE_FILES
- The files in ser will be hosted within a Docker container
- release_files/YOUR_CHALLENGE_FILES
- All files within release_files will be those which you want shared with the players
- Files in this directory which are also on the ser should be symlinked
Run python docker_deploy.py to launch all the Docker challenges using docker-compose.
开发语言:Python
Star 数:152
该项目属于CTF思路方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕Hosting awesome cryptography CTF challenges from past CTFs展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。
| 资源标题 | ctf_archive - 从p出租令人敬畏的加密CTF挑战 |
| 所属分类 | CTF思路 |
| 发布作者 | admin |
| 发布时间 | 2026-10-05 23:49:31 |
| 下载权限 | 免费下载 |
| 附件数量 | 2 个下载链接 |
| 浏览次数 | 368 |
| 讨论数量 | 0 |
| 主题状态 | 正常讨论中 |