Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Minimus-Junior-Backend-Exercise — 初级后端候选练习:使用 Melange 打包 dasel CLI (v3.3.1),修复 CVE-2026-33320,并使用 Apko 构建最小容器镜像。 | Kitploit
工具/GitHubGitHub/gonsarrabia/minimus-junior-backend-exercise
容器安全漏洞分析配置审计DevSecOps供应链安全学习与教育
GitHubgonsarrabia/minimus-junior-backend-exercise

Minimus-Junior-Backend-Exercise

初级后端候选练习:使用 Melange 打包 dasel CLI (v3.3.1),修复 CVE-2026-33320,并使用 Apko 构建最小容器镜像。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
43个月前尚未审核

Junior Backend 练习 — dasel v3.3.1

使用 Melange 打包 dasel v3.3.1,用 apko 构建容器镜像,并修复 CVE-2026-33320。

前置条件: Docker。所有构建步骤在容器内运行 — 无需本地安装 melange/apko。所有命令在 linux/amd64(或支持 linux/amd64 模拟的 Docker Desktop)上从仓库根目录执行。


构建与测试

第 0 步 — 生成签名密钥(一次性)

root@kitploit:~
docker run --rm -v "/${PWD}":/work cgr.dev/chainguard/melange keygen

第 1 步 — 构建包

root@kitploit:~
docker run --privileged --rm -v "/${PWD}":/work cgr.dev/chainguard/melange build melange/dasel.yaml --arch amd64 --signing-key melange.rsa

输出:packages/x86_64/dasel-3.3.1-r1.apk

第 2 步 — 测试包

root@kitploit:~
docker run --privileged --rm -v "/${PWD}":/work cgr.dev/chainguard/melange test melange/dasel.yaml --arch amd64 --repository-append //work/packages --keyring-append //work/melange.rsa.pub

第 3 步 — 构建镜像

root@kitploit:~
docker run --rm -v "/${PWD}":/work cgr.dev/chainguard/apko build apko/dasel.yaml dasel-image:latest dasel-image.tar --arch amd64 -k melange.rsa.pub

输出:dasel-image.tar。apko/dasel.yaml 中的 @local ./packages 仓库使 apko 安装你在第 1 步构建的 APK。-k 让 apko 信任 Melange 签名密钥。apko 会在标签后追加架构,因此加载的镜像为 dasel-image:latest-amd64。

第 4 步 — 加载镜像

root@kitploit:~
docker load --input dasel-image.tar

第 5 步 — 运行镜像测试

root@kitploit:~
bash tests/test.sh

十项测试:二进制文件存在且可运行、JSON 扁平键查询、架构为 amd64、CVE 预算限制拒绝 YAML 别名炸弹、正常 YAML 绿色路径读取、嵌套 JSON 路径、数组索引访问、TOML 格式、CVE 深度限制拒绝 33 层别名链、格式错误的 JSON 被拒绝。


CVE-2026-33320

melange/CVE-2026-33320.patch 在 parsing/yaml/yaml_reader.go 中添加了两项保护:

  • maxExpansionDepth = 32 — 拒绝超过 32 层深的别名链
  • maxExpansionBudget = 100 — 拒绝总别名解析次数超过 100 次的文档

两者均以非零退出码退出,并输出包含 yaml expansion 的消息。tests/test.sh 中的测试 4 验证了这一点。


提交说明

运行命令顺序:melange keygen → melange build → melange test → apko build → docker load → tests/test.sh

所有步骤在 linux/amd64 上通过。

如果有更多时间我会改进的地方:

  • 在 test.sh 中将镜像标签和 tarball 名称参数化
下载工具