본문 바로가기
CTF

[WaniCTF 2023] certified 1

by skyepodium 2023. 5. 13.

1. 개요

imageMagick 문제

 

2. 분석

이미지를 올리면 우측 하단에 도장 이미지를 넣어줍니다.

 

코드를 보면 도장 이미지를 넣는데 imageMagick을 사용하고 있고, 버전은 7.1.0-51입니다.

# build stage
FROM rust:1.67.1-bullseye as builder

WORKDIR /root/app
COPY . .

RUN cargo build --release --bin hanko

# final stage
FROM debian:bullseye-slim

# Setup magick
RUN apt-get update && \
    apt-get install -y --no-install-recommends curl ca-certificates libfontconfig1 libx11-6 libharfbuzz0b libfribidi0 && \
    rm -rf /var/lib/apt/lists/*

ARG MAGICK_URL="https://github.com/ImageMagick/ImageMagick/releases/download/7.1.0-51/ImageMagick--gcc-x86_64.AppImage"
RUN curl --location --fail -o /usr/local/bin/magick $MAGICK_URL && \
    chmod 755 /usr/local/bin/magick
ENV APPIMAGE_EXTRACT_AND_RUN=1

RUN mkdir ./data

COPY --from=builder /root/app/target/release/hanko /usr/local/bin/hanko

RUN echo 'FAKE{REDACTED}' > /flag_A
ENV FLAG_B="FAKE{REDACTED}"

ENV RUST_LOG="hanko,tower_http=TRACE,INFO"
ENV LISTEN_ADDR="0.0.0.0:3000"
ENTRYPOINT ["hanko"]

 

요 링크에서 imageMagick 7.1.0-51에 해당하는 취약점을 볼 수 있는데, information disclosure(CVE-2022-44268)를 사용할 수 있을 것 같습니다.

https://www.cybersecurity-help.cz/vdb/SB2023020911

 

Multiple vulnerabilities in ImageMagick

Multiple vulnerabilities were identified in ImageMagick

www.cybersecurity-help.cz

CVE-2022-44268는 청크에 특정 파일의 경로를 넣으면, imageMagick이 이미지를 가공할때 해당 파일을 읽은 결과를 포함합니다.

 

 

3. exploit

pngcush를 사용해서 이미지의 profile 영역에 /flag_A 경로를 텍스트로 넣습니다.

pngcrush -text a profile /flag_A payload.png

hex 에디터로 열어보면, 제일 마지막에 flag_a가 들어갔음을 확인 할 수 있습니다.

해당 이미지를 업로드 후 결과 이미즈를 hex 에디터로 열어보면, hex 문자열이 보입니다.

혹은 exiftool로 확인할 수 있습니다.

exiftool result.png

hex 디코딩을 하면 flag를 얻을 수 있습니다.

'CTF' 카테고리의 다른 글

[SCTF 2022] DocxArchive  (0) 2023.05.20
[SCTF 2022] Yet Another Injection  (0) 2023.05.20
[WaniCTF 2023] Screen shot  (0) 2023.05.10
[WaniCTF 2023] Prompt  (0) 2023.05.07
[WaniCTF 2023] Extract Service 2  (0) 2023.05.06