{"id":49278710,"url":"https://github.com/chainreactors/tinyctfer","last_synced_at":"2026-04-25T17:31:40.303Z","repository":{"id":327684764,"uuid":"1109735166","full_name":"chainreactors/tinyctfer","owner":"chainreactors","description":"antix's baby intent runtime and meta-tooling design. ","archived":false,"fork":false,"pushed_at":"2025-12-05T09:48:11.000Z","size":3356,"stargazers_count":50,"open_issues_count":0,"forks_count":9,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-08T11:57:51.729Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chainreactors.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-04T08:00:56.000Z","updated_at":"2025-12-08T08:03:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/chainreactors/tinyctfer","commit_stats":null,"previous_names":["chainreactors/tinyctfer"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/chainreactors/tinyctfer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainreactors%2Ftinyctfer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainreactors%2Ftinyctfer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainreactors%2Ftinyctfer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainreactors%2Ftinyctfer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chainreactors","download_url":"https://codeload.github.com/chainreactors/tinyctfer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainreactors%2Ftinyctfer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32270658,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T09:15:33.318Z","status":"ssl_error","status_checked_at":"2026-04-25T09:15:31.997Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-25T17:31:39.784Z","updated_at":"2026-04-25T17:31:40.293Z","avatar_url":"https://github.com/chainreactors.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![badge](./README/badge.png)](https://zc.tencent.com/competition/competitionHackathon?code=cha004)\n\n## 介绍\n\n腾讯云黑客松-智能渗透挑战赛 **第 4 名** 核心代码。\n\n文章：https://mp.weixin.qq.com/s/jT4poWZ4Gfu3faXvul07HA\n\nPPT：https://wiki.chainreactors.red/blog/2025/12/01/intent_is_all_you_need/\n\n演讲视频：https://www.bilibili.com/video/BV1z12eBkETz\n\n比赛详情以及其他队伍资料：https://zc.tencent.com/competition/competitionHackathon?code=cha004\n\n\n\n## 使用方法\n\n1. 下载沙盒镜像：\n\n   ```bash\n   docker pull ghcr.io/l3yx/sandbox:latest\n   docker tag ghcr.io/l3yx/sandbox:latest l3yx/sandbox:latest\n   \n   # 或者使用加速地址:\n   # docker pull ghcr.nju.edu.cn/l3yx/sandbox:latest\n   # docker tag ghcr.nju.edu.cn/l3yx/sandbox:latest l3yx/sandbox:latest\n   ```\n\n2. 创建.env文件并填入LLM Key（这里可以使用任意厂商的 Anthropic 兼容 api ）：\n\n   ```\n   cp .env.example .env\n   ```\n\n   \n\n   可以提前使用以下命令进入容器检查 api 和 key 的可用性，如果不可用的话直接启动 tinyctfer.py 会无响应很久（Claude Code 设计问题，会一直重试连接）\n\n   ```\n   docker run --rm -ti --entrypoint bash l3yx/sandbox:latest\n   \n   ANTHROPIC_MODEL=GLM-4.6 ANTHROPIC_BASE_URL=https://open.bigmodel.cn/api/anthropic ANTHROPIC_AUTH_TOKEN=xxx claude hello\n   ```\n\n3. 指定CTF题目地址和工作目录，启动：\n\n   ```bash\n   uv run --env-file .env tinyctfer.py --ctf http://821dd238-6bbe-4d44-8294-82ff25743b70.node5.buuoj.cn:81 --workspace workspace\n   ```\n\n​\t测试题目是：https://buuoj.cn/challenges#BUU%20XXE%20COURSE%201\n\n​\t这个版本默认开启 VNC 服务，可以直观查看解题步骤。（比赛时是多容器并行，为节省性能不开UI）\n\n​\t目前设定的 Claude Code SubAgent 比较耦合，只能用于解CTF，且唯一目标就是找到 flag。后面如果发布正式的版本会支持自定义的安全测试任务甚至通用任务。\n\n![image-20251205040854944](./README/image-20251205040854944.png)\n\n![image-20251205041013949](./README/image-20251205041013949.png)\n\n\n\n## 其他\n\n比赛时的调度和运行代码是我和 AI 混合编写的，包含任务并行，题目优先排序，多次失败后提示词动态变换，hint 获取策略，LLM 和 Agent switch 机制等，代码很杂乱，这个仓库的代码是我将核心部分单独抽离出来的版本，方便大家复现和学习。但是代码也比较潦草，最近确实没有时间好好整理，但又不能一直不开源，所以先简单梳理了一下，后续可能会重构，开源一个正式的项目。\n\n赛前写的很匆忙，这个项目中对 Meta-Tooling 的实现还有非常大的优化空间，欢迎各位大佬一起来交流讨论。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchainreactors%2Ftinyctfer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchainreactors%2Ftinyctfer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchainreactors%2Ftinyctfer/lists"}