题目投稿规范及奖励标准 v1.3

harry 2026-09-03 16:27:23 70 6


感谢您对本平台的支持!为了提升题目质量、保障答题体验,投稿前请仔细阅读以下规范。不符合要求的稿件将被拒绝。


一、通用要求

1.1 基本准则

  • 投稿题目必须为原创,不得搬运、篡改其他平台已公开的题目。
  • 题目内容应积极向上,符合国家法律法规及社会主义核心价值观。
  • 必须提供完整的WriteUp(WP),推荐使用Markdown格式;若使用word文档,请确保代码块格式清晰。
  • 所有题目须简述考点(如SQL注入、栈溢出、古典密码等),最好有题目描述,便于审核和分类。
  • Flag格式尽量采用 bugku{...}flag{...},如无法满足可自定义,但需在WP中明确说明。
  • 附件过大可上传网盘,并在投稿中注明。
  • AI 时代提醒:平台不反对 AI 辅助,但 AI 风格过重的题目将严格审核(≈不通过)。题目应体现原创思考与设计巧思。

1.2 提交方式

  • 将题目源码、Dockerfile(如适用)、WP及相关附件打包成ZIP或别的格式压缩包。
  • 若附件过大(>100MB),请提供网盘链接(如百度网盘、阿里云盘、蓝奏云、夸克网盘等),并确保永久或长期有效。
  • 提交时请注明题目类型(Web/Pwn/Misc/Re/Crypto/Ai/IOT/Forensics)及预估难度等级(简单/中等/困难)。

二、WEB题型要求

2.1 运行环境

  • 强烈建议提供 Dockerfile 及启动脚本 start.sh,以便平台自动部署。
  • 如无法提供Dockerfile,必须详细说明运行环境(如 Tomcat 10 / PHP 8.2 / Python 3.11 等),并附上完整配置步骤。
  • 推荐基础镜像:alpine:latest 或官方轻量镜像(如 python:3.11-alpine),以减小体积、加快启动速度。
  • 必须暴露80端口,其他端口不予识别。
  • 题目漏洞应为设计需要,不得包含对宿主机造成风险的配置。

2.2 动态Flag配置

  • WEB题目必须支持动态Flag,通过环境变量 $FLAG 注入。

  • 如需将Flag写入文件,建议在 start.sh 中执行:

    echo $FLAG > /flag && chmod 444 /flag
    export FLAG=not_flag
    
  • 如需写入数据库(如用于SQL注入题),示例:

    create_db_sql="INSERT INTO flag (flag) VALUES ('${FLAG}');"
    mysql -h${HOSTNAME} -P${PORT} -uroot -pyourpass -e"${create_db_sql}"
    export FLAG=not_flag
    
  • 如需替换代码中静态Flag(如 flag.php),可用 sed 替换:

    sed -i "s/flag{static_flag}/${FLAG}/g" /var/www/html/flag.php
    export FLAG=not_flag
    
  • 非正确Flag请明确显示(如 flag{THIS_IS_NOT_FLAG})。

2.3 示例文件

Dockerfile示例(PHP 8.2 + Apache)

FROM php:8.2-apache
EXPOSE 80
RUN rm -rf /var/www/html/*
COPY src/ /var/www/html/
COPY start.sh /start.sh
RUN chmod +x /start.sh && chown -R www-data:www-data /var/www/html
CMD ["/start.sh"]

start.sh 示例

#!/bin/bash
# 启动Web服务
apache2-foreground &
# 写入Flag文件(或执行数据库操作)
echo $FLAG > /flag && chmod 444 /flag
export FLAG=not_flag
# 保持容器运行
tail -f /dev/null

三、PWN题型具体要求

3.1 环境与安全

  • 必须提供Dockerfile,并注明基础镜像(如 ubuntu:22.04)及glibc版本(如 2.35)。
  • 必须提供源码编译命令(如 gcc -o pwn pwn.c -no-pie -z execstack 等)。
  • 如需替换glibc,请将相关 .so 文件一并打包,并在Dockerfile中设置 LD_PRELOAD
  • 必须暴露9999端口,其他端口不予识别。
  • 题目漏洞应为设计需要,不得包含对宿主机造成风险的配置。

3.2 动态Flag

  • 通过环境变量 $FLAG 注入,建议在启动脚本中将Flag写入 /home/ctf/flag

    echo $FLAG > /home/ctf/flag && chmod 444 /home/ctf/flag
    export FLAG=not_flag
    
  • 推荐使用非root用户(如 ctf)运行PWN程序:

    RUN useradd -d /home/ctf -m -p ctf -s /bin/bash ctf
    RUN echo "ctf:ctf" | chpasswd
    USER ctf
    

3.3 额外建议

  • 可开启ASLR/NX等保护机制,但需在WP中说明。
  • 若程序涉及沙箱(seccomp),请附带规则文件。

3.4 示例文件

Dockerfile示例(ubuntu 24.04)

FROM ubuntu:24.04

RUN sed -i \
    -e 's|archive.ubuntu.com/ubuntu|mirrors.aliyun.com/ubuntu|g' \
    -e 's|security.ubuntu.com/ubuntu|mirrors.aliyun.com/ubuntu|g' \
    /etc/apt/sources.list.d/ubuntu.sources \
    && apt-get update \
    && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends socat \
    && useradd --create-home --shell /usr/sbin/nologin ctf \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /home/ctf

COPY chall ./chall
COPY deploy/run.sh ./run.sh
COPY deploy/entrypoint.sh /entrypoint.sh

RUN chown -R root:root /home/ctf /entrypoint.sh \
    && chmod 0755 /home/ctf \
    && chmod 0555 /home/ctf/chall /home/ctf/run.sh /entrypoint.sh

EXPOSE 9999

ENTRYPOINT ["/entrypoint.sh"]

CMD ["socat", "TCP-LISTEN:9999,reuseaddr,fork", "EXEC:/home/ctf/run.sh,stderr"]

entrypoint.sh 示例

#!/bin/sh
set -eu

echo $FLAG > /flag
chmod 444 /flag
export FLAG=not_flag
FLAG=not_flag

chown root:ctf /flag
chmod 0440 /flag

exec setpriv --reuid=ctf --regid=ctf --init-groups "$@"

四、MISC题型具体要求

  • 套娃类题目建议不超过5层,避免过度繁琐。
  • 平台已收录的常见简单套路(如隐写、流量分析、压缩包爆破等)可能不再重复审核,鼓励创新思路。
  • 数据包(pcap)、图片、音频等附件请提供原始文件,并注明工具/方法。
  • 如附件较大,可通过网盘提交。

五、Reverse题型具体要求

  • 严禁任何具有破坏性的恶意行为(如删除文件、格式化磁盘、植入病毒等),违者将被拉黑并追究责任。
  • 须提供可执行文件(Windows/Linux/Android等)及必要运行库,并附带解题思路。
  • 若使用混淆/加壳,请一并提供脱壳方法或工具。
  • 如附件较大,可通过网盘提交

六、CRYPTO题型具体要求

  • 支持静态或动态Flag。若为动态Flag,请提供服务端脚本或Dockerfile,环境变量配置同WEB/PWN(参考第二部分)。
  • 禁止简单组合套娃(如“栅栏+Base64”等无脑叠加),鼓励结合现代密码学(如RSA、椭圆曲线、格密码等)或新颖协议。
  • 须提供加密/解密脚本(或伪代码)以便验证。

七、Ai题型具体要求

  • 支持静态或动态Flag。若为动态Flag,请提供服务端脚本或Dockerfile,环境变量配置同WEB/PWN(参考第二部分)。
  • apikey需出题者提供或让选手自己填写。

八、奖励标准(金币)

难度等级 WEB / PWN / RE MISC / CRYPTO
简单 100 ~ 200 50 ~ 100
中等 200 ~ 300 100 ~ 200
困难 300 ~ 400 200 ~ 300

注:奖励最终由平台根据题目质量、规范程度、WP完整度综合评定。


九、补充说明

  • 投稿即视为同意平台对题目进行审核、修改、展示上线及用于比赛活动。
  • 平台保留对本规范的最终解释权,如有更新将另行通知。

期待您的精彩题目,祝解题顺利! [心]

评论(6)
nanaqilin 16小时前

祝BUGKU越办越好

回复 0

cheyenne 管理员 17小时前

好顶支持

回复 0

mystery 18小时前

在吗?送点金币做不起题目了。

回复 0
harry 管理员 18小时前

签到题、任务中心、投稿、充值

回复 0

dlgz 18小时前

确实应该规范题目,祝bugku越办越好[心][心][心]

回复 2
niubill 1小时前

CTF已毁阿

回复 0
问题反馈