Skip to content

Commit

Permalink
feat(pwn/srand): 添加镜像构建文件
Browse files Browse the repository at this point in the history
  • Loading branch information
13m0n4de committed Oct 18, 2024
1 parent 82d1975 commit bee5b22
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 0 deletions.
48 changes: 48 additions & 0 deletions challenges/pwn/srand/build/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
FROM ubuntu:22.04 AS builder

RUN apt-get update && apt-get install -y gcc make

WORKDIR /build

COPY src/* ./

RUN make

FROM ghcr.io/svuctf/base-v2/xinetd:latest

# Copy initialization script and xinetd configuration
COPY --chmod=500 init.sh /init.sh
COPY xinetd.conf /etc/xinetd.conf

# Set up the CTF environment
RUN chmod -R 750 /home/ctf && \
mkdir -p /home/ctf/lib64 && \
mkdir -p /home/ctf/dev && \
mkdir -p /home/ctf/bin && \
mkdir -p /home/ctf/lib/x86_64-linux-gnu && \
mkdir -p /home/ctf/lib32

# Copy necessary libraries from builder stage
COPY --from=builder /lib/x86_64-linux-gnu/libc.so.6 /home/ctf/lib/x86_64-linux-gnu/
COPY --from=builder /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /home/ctf/lib64/

# Copy the challenge binary
COPY --from=builder --chmod=500 /build/game /home/ctf/game

# Set up device nodes
RUN mknod /home/ctf/dev/null c 1 3 && \
mknod /home/ctf/dev/zero c 1 5 && \
mknod /home/ctf/dev/random c 1 8 && \
mknod /home/ctf/dev/urandom c 1 9 && \
chmod 666 /home/ctf/dev/*

# Copy necessary binaries abd binaries
RUN cp /lib/ld-musl-x86_64.so.1 /home/ctf/lib/ && \
cp /bin/sh /home/ctf/bin && \
cp /bin/ls /home/ctf/bin && \
cp /bin/cat /home/ctf/bin && \
cp /bin/base64 /home/ctf/bin

RUN chown -R ctf:ctf /home/ctf

CMD ["xinetd", "-dontfork"]
7 changes: 7 additions & 0 deletions challenges/pwn/srand/build/init.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/sh

echo $GZCTF_FLAG > /home/ctf/flag
chown -R ctf:ctf /home/ctf/flag
unset GZCTF_FLAG

/usr/sbin/chroot /home/ctf/ /game
17 changes: 17 additions & 0 deletions challenges/pwn/srand/build/xinetd.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
service ctf
{
disable = no
id = xinetd
socket_type = stream
protocol = tcp
wait = no
user = root
type = UNLISTED
port = 70
bind = 0.0.0.0
server = /init.sh
# safety options
per_source = 10 # the maximum instances of this service per source IP address
rlimit_cpu = 20 # the maximum number of CPU seconds that the service may use
rlimit_as = 100M # the Address Space resource limit for the service
}

0 comments on commit bee5b22

Please sign in to comment.