draggable topology + attack visualizer + tools in containers

- topology nodes draggable (pointer events, SVG transform), layout hint shown
- attack visualizer: /api/attacks logs attacker->target events; red pulsing
  dashed arcs on recent attacks (60s hot), ⚔ counts ok/fail
- submit_flag now takes attacker_idx vs target_idx (A/D semantics); UI has
  target dropdown (enemy teams), leaderboard records target
- containers get vim+curl+wget+netcat+git+pip3 (Dockerfiles blogpost/cdn/
  phew/sheesh/warmup); warmup base ubuntu:20.04 EOL -> 24.04
- team portal: target dropdown refreshed after login (was empty pre-auth)
This commit is contained in:
root
2026-09-23 18:05:44 +08:00
parent 44dc1ac852
commit 24dbf0a662
9 changed files with 196 additions and 23 deletions
+6
View File
@@ -21,6 +21,12 @@ RUN apt-get update && \
build-essential \
bash \
nano \
vim \
curl \
wget \
netcat-openbsd \
git \
python3-pip \
&& rm -rf /var/lib/apt/lists/*
# Create an unprivileged user for running the app / SSH access
+6
View File
@@ -22,6 +22,12 @@ RUN apt-get update && \
build-essential \
bash \
nano \
vim \
curl \
wget \
netcat-openbsd \
git \
python3-pip \
&& rm -rf /var/lib/apt/lists/*
# Create an unprivileged user for running the app / SSH access
+5
View File
@@ -12,6 +12,11 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
libssl-dev \
python3-dev \
socat \
vim \
curl \
wget \
netcat-openbsd \
git \
bash \
&& rm -rf /var/lib/apt/lists/*
+5
View File
@@ -12,6 +12,11 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
libssl-dev \
python3-dev \
socat \
vim \
curl \
wget \
netcat-openbsd \
git \
bash \
&& rm -rf /var/lib/apt/lists/*
+2 -2
View File
@@ -6,14 +6,14 @@ COPY src/main.go .
RUN go build -o challenge main.go
# Final stage
FROM public.ecr.aws/docker/library/ubuntu:20.04
FROM public.ecr.aws/docker/library/ubuntu:24.04
ARG PASSWORD
ENV DEBIAN_FRONTEND=noninteractive
# Install necessary packages
RUN apt-get update && apt-get install -y nano openssh-server python3 curl netcat-traditional wget sudo nginx golang-go && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y nano vim git openssh-server python3 curl netcat-traditional wget sudo nginx golang-go && rm -rf /var/lib/apt/lists/*
# Create ctfuser and set password
RUN useradd -m -d /home/ctfuser ctfuser && echo ctfuser:${PASSWORD} | chpasswd