first commit
Some checks failed
Vulhub Format Check and Lint / format-check (push) Has been cancelled
Vulhub Format Check and Lint / markdown-check (push) Has been cancelled
Vulhub Docker Image CI / longtime-images-test (push) Has been cancelled
Vulhub Docker Image CI / images-test (push) Has been cancelled

This commit is contained in:
2025-09-06 16:08:15 +08:00
commit 63285f61aa
2624 changed files with 88491 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
FROM debian:bookworm
LABEL phith0n="phithon <root@leavesongs.com>"
RUN set -ex \
&& apt-get update \
&& apt-get install -y --no-install-recommends build-essential gcc make pkg-config wget ca-certificates bc ghostscript mupdf-tools poppler-utils dbus \
libexif-dev libglib2.0-dev liblcms2-dev libfreetype6-dev libfontconfig-dev libqpdf-dev libpoppler-cpp-dev libgnutls28-dev libdbus-1-dev libcups2-dev \
libavahi-glib-dev libavahi-client-dev \
&& mkdir -p /usr/src/libcupsfilters /usr/src/cups-filters /usr/src/libppd /usr/src/cups-browsed /usr/src/cups \
# install libcupsfilters
&& wget -qO- https://github.com/OpenPrinting/libcupsfilters/releases/download/2.1b1/libcupsfilters-2.1b1.tar.gz | tar xz -C /usr/src/libcupsfilters --strip-components=1 \
&& cd /usr/src/libcupsfilters \
&& CXXFLAGS="-std=c++17" ./configure \
&& make -j$(nproc) \
&& make install \
# install libppd
&& wget -qO- https://github.com/OpenPrinting/libppd/releases/download/2.1b1/libppd-2.1b1.tar.gz | tar xz -C /usr/src/libppd --strip-components=1 \
&& cd /usr/src/libppd \
&& CXXFLAGS="-std=c++17" ./configure \
&& make -j$(nproc) \
&& make install \
# install cups-filters
&& wget -qO- https://github.com/OpenPrinting/cups-filters/releases/download/2.0.1/cups-filters-2.0.1.tar.gz | tar xz -C /usr/src/cups-filters --strip-components=1 \
&& cd /usr/src/cups-filters \
&& CXXFLAGS="-std=c++17" ./configure \
&& make -j$(nproc) \
&& make install \
# install vulnerable cups-browsed
&& wget -qO- https://github.com/OpenPrinting/cups-browsed/releases/download/2.0.1/cups-browsed-2.0.1.tar.gz | tar xz -C /usr/src/cups-browsed --strip-components=1 \
&& cd /usr/src/cups-browsed \
&& CXXFLAGS="-std=c++17" CFLAGS="-g" ./configure \
&& make -j$(nproc) \
&& make install \
# install CUPS
&& wget -qO- https://github.com/OpenPrinting/cups/releases/download/v2.4.7/cups-2.4.7-source.tar.gz | tar xz -C /usr/src/cups --strip-components=1 \
&& cd /usr/src/cups \
&& CXXFLAGS="-std=c++17" ./configure \
&& make -j$(nproc) \
&& make install \
# modify default cups config
&& sed -i 's/Listen localhost:631/Listen 0.0.0.0:631/g' /etc/cups/cupsd.conf \
&& sed -i 's/Order allow,deny/Order allow,deny\n Allow from all/g' /etc/cups/cupsd.conf \
# clean
&& rm -rf /usr/src/* \
&& apt-get remove -y --purge build-essential gcc make pkg-config bc \
&& apt-get autoremove -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY docker-entrypoint.sh /docker-entrypoint.sh
RUN set -ex \
&& chmod +x /docker-entrypoint.sh
EXPOSE 631/tcp 631/udp
ENTRYPOINT [ "bash", "/docker-entrypoint.sh" ]
CMD [ "cups-browsed", "--debug" ]

View File

@@ -0,0 +1,12 @@
#!/bin/bash
set -e
if [ "$1" = "cups" ]; then
/etc/init.d/dbus start
elif [ "$1" = "cups-browsed" ]; then
/etc/init.d/dbus start
cupsd
fi
exec "$@"