[๐Ÿฅ‰ Bronze 3] flag๋Š” ์„œ๋น„์Šค๊ฐ€ ์•„๋‹ˆ๋ผ ์ด๋ฏธ์ง€ ์•ˆ์— ์žˆ์—ˆ๋‹ค โ€” DreamHack Exercise: Docker ํ’€์ด

2026-06-25ยท1๋ถ„ ์ฝ๊ธฐยท

[๐Ÿฅ‰ Bronze 3] flag๋Š” ์„œ๋น„์Šค๊ฐ€ ์•„๋‹ˆ๋ผ ์ด๋ฏธ์ง€ ์•ˆ์— ์žˆ์—ˆ๋‹ค โ€” DreamHack Exercise: Docker ํ’€์ด

Dockerfile ํ•˜๋‚˜์™€ socat์œผ๋กœ ๋…ธ์ถœ๋˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์ฃผ์–ด์ง€๋Š” Docker ์‹ค์Šต ๋ฌธ์ œ. ์„œ๋น„์Šค์— ์ ‘์†ํ•˜๋ฉด "Hello Beginners!"๋งŒ ๋‚˜์˜ค๊ณ  ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” flag๋ฅผ ์ถœ๋ ฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ•ต์‹ฌ์€ Dockerfile์ด flag ํŒŒ์ผ์„ ์ด๋ฏธ์ง€ ์•ˆ(/home/chall/flag)์œผ๋กœ ADD ํ•œ๋‹ค๋Š” ๊ฒƒ โ€” ๊ฐ™์€ Dockerfile๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•ด ๊ทธ ์•ˆ์˜ flag๋ฅผ ๊ทธ๋Œ€๋กœ ์ฝ๋Š”๋‹ค.

๋ฌธ์ œ: DreamHack โ€” Exercise: Docker ๋ถ„๋ฅ˜: Misc ๋‚œ์ด๋„: ๐Ÿฅ‰ Bronze 3 FLAG: DH{docker_exercise}

"์ฃผ์–ด์ง„ Dockerfile์„ ๋นŒ๋“œํ•ด ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ณ  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•ด ๋ณด์„ธ์š”"๋ผ๋Š” ํ•œ ์ค„์งœ๋ฆฌ ์‹ค์Šต ๋ฌธ์ œ๋‹ค. ์ต์Šคํ”Œ๋กœ์ž‡์ด ์•„๋‹ˆ๋ผ Docker๋กœ ์ฑŒ๋ฆฐ์ง€๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐฐํฌ๋˜๋Š”์ง€ ์†์— ์ตํžˆ๋Š” ๊ฒŒ ๋ชฉ์ ์ด๋‹ค. ์„œ๋น„์Šค์— ๋ถ™์–ด ๋ด์•ผ flag๋Š” ์•ˆ ๋‚˜์˜จ๋‹ค โ€” flag๊ฐ€ ์–ด๋”” ์žˆ๋Š”์ง€๋ถ€ํ„ฐ ์•Œ์•„์•ผ ํ•œ๋‹ค.

cat -n Dockerfile
์ œ๊ณต๋œ Dockerfile
์ œ๊ณต๋œ Dockerfile

๋ฌธ์ œ ๊ฐœ์š”

ํ•ญ๋ชฉ๋‚ด์šฉ
๋ฌธ์ œ๋ช…Exercise: Docker
๋‚œ์ด๋„๐Ÿฅ‰ Bronze 3
๋ถ„๋ฅ˜Misc
์ŠคํƒUbuntu 22.04 ยท socat ยท x86-64 ELF
์ œ๊ณตDockerfile + deploy/chall(๋ฐ”์ด๋„ˆ๋ฆฌ) + deploy/flag
ํ•ต์‹ฌflag๋Š” ์„œ๋น„์Šค ์ถœ๋ ฅ์ด ์•„๋‹ˆ๋ผ Dockerfile์ด ์ด๋ฏธ์ง€๋กœ ADD ํ•˜๋Š” ํŒŒ์ผ์— ์žˆ๋‹ค

ํ’€์ด ํ๋ฆ„์€ ์งง๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ flag๋ฅผ ์•ˆ ์ค€๋‹ค๋Š” ๊ฑธ ํ™•์ธํ•˜๊ณ , Dockerfile์„ ์ฝ์–ด flag๊ฐ€ ์ด๋ฏธ์ง€ ์•ˆ์œผ๋กœ ๋ณต์‚ฌ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ํŒŒ์•…ํ•œ ๋’ค, ๊ฐ™์€ Dockerfile๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œยท์‹คํ–‰ํ•ด ๊ทธ ์•ˆ์˜ flag๋ฅผ ์ฝ๋Š”๋‹ค.



๐Ÿงฉ ๋ฐฐ๊ฒฝ โ€” Dockerfile ยท ์ด๋ฏธ์ง€ ยท ์ปจํ…Œ์ด๋„ˆ

Docker๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ทธ ์‹คํ–‰ ํ™˜๊ฒฝ(OS ํŒจํ‚ค์ง€, ํŒŒ์ผ, ์„ค์ •)์„ ์ด๋ฏธ์ง€(image) ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ๋‘๊ณ , ๊ทธ ์ด๋ฏธ์ง€๋ฅผ ๋„์šด ์ธ์Šคํ„ด์Šค๋ฅผ ์ปจํ…Œ์ด๋„ˆ(container) ๋กœ ๋Œ๋ฆฌ๋Š” ๋„๊ตฌ๋‹ค. ์›Œ๊ฒŒ์ž„ ์„œ๋ฒ„๋„ ๋ณดํ†ต ์ด๋ ‡๊ฒŒ ๋ฐฐํฌ๋œ๋‹ค โ€” "์ด ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ, ์ด ์šฐ๋ถ„ํˆฌ ํ™˜๊ฒฝ์—์„œ, ์ด ๊ถŒํ•œ์œผ๋กœ ๋Œ๋ฆฐ๋‹ค"๋ฅผ ํ•œ ํŒŒ์ผ์— ์ ์–ด ๋‘๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ ์„ค๊ณ„๋„๊ฐ€ Dockerfile ์ด๋‹ค. ๋ช…๋ น ํ•œ ์ค„์ด ์ด๋ฏธ์ง€์˜ ํ•œ ๋ ˆ์ด์–ด(layer) ๊ฐ€ ๋œ๋‹ค.

  • FROM โ€” ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€(์—ฌ๊ธฐ์„  ubuntu:22.04)
  • RUN โ€” ๋นŒ๋“œ ์ค‘ ์‹คํ–‰ํ•  ๋ช…๋ น(ํŒจํ‚ค์ง€ ์„ค์น˜, ์‚ฌ์šฉ์ž ์ถ”๊ฐ€ ๋“ฑ)
  • ADD / COPY โ€” ํ˜ธ์ŠคํŠธ์˜ ํŒŒ์ผ์„ ์ด๋ฏธ์ง€ ์•ˆ์œผ๋กœ ๋ณต์‚ฌ
  • USER โ€” ์ดํ›„ ๋‹จ๊ณ„์™€ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ์‹œ์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž
  • CMD โ€” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋–ด์„ ๋•Œ ์‹คํ–‰ํ•  ๋ช…๋ น

์—ฌ๊ธฐ์„œ ํ•ต์‹ฌ์€ ADD ๋‹ค. ๋นŒ๋“œ ์‹œ์ ์— ํ˜ธ์ŠคํŠธ์— ์žˆ๋˜ ํŒŒ์ผ์ด ์ด๋ฏธ์ง€ ์•ˆ์— ํ†ต์งธ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ์€ ๊ทธ ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ๊บผ๋‚ผ ์ˆ˜ ์žˆ๋‹ค โ€” ์ด๊ฒŒ ์ด๋ฒˆ ๋ฌธ์ œ์˜ ์ „๋ถ€๋‹ค.


๐Ÿ”ฌ ์ •์ฐฐ โ€” ๋ฐ›์€ ํŒŒ์ผ๊ณผ ๋ฐ”์ด๋„ˆ๋ฆฌ

๋ฐ›์€ ํŒŒ์ผ์€ ์…‹์ด๋‹ค.

Dockerfile
deploy/
โ”œโ”€โ”€ chall    # ์„œ๋ฒ„์—์„œ socat์œผ๋กœ ๋…ธ์ถœ๋˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ
โ””โ”€โ”€ flag     # ์ด๋ฏธ์ง€๋กœ ๋“ค์–ด๊ฐˆ flag ํŒŒ์ผ

๋จผ์ € ๋ฐ”์ด๋„ˆ๋ฆฌ๋ถ€ํ„ฐ. file๋กœ ์ข…๋ฅ˜๋ฅผ ๋ณด๊ณ  ์ง์ ‘ ์‹คํ–‰ํ•ด ๋ณด๋ฉด, ๊ทธ๋ฆฌ๊ณ  main์„ ๋””์Šค์–ด์…ˆ๋ธ”ํ•ด ๋ณด๋ฉด ํ•˜๋Š” ์ผ์ด ๋”ฑ ํ•˜๋‚˜๋‹ค โ€” puts๋กœ ๋ฌธ์ž์—ด ํ•˜๋‚˜ ์ถœ๋ ฅํ•˜๊ณ  ๋.

chall ๋ฐ”์ด๋„ˆ๋ฆฌ โ€” main์€ puts ํ•œ ๋ฒˆ๋ฟ
chall ๋ฐ”์ด๋„ˆ๋ฆฌ โ€” main์€ puts ํ•œ ๋ฒˆ๋ฟ
main:
    lea  rax, [rip+0xeac]   ; "Hello Beginners!"
    mov  rdi, rax
    call puts
    mov  eax, 0
    ret

flag๋ฅผ ์ฝ๋Š” ์ฝ”๋“œ๋„, ์ž…๋ ฅ์„ ๋ฐ›๋Š” ์ฝ”๋“œ๋„ ์—†๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ๋ผ์ด๋ธŒ ์„œ๋ฒ„์— ์ ‘์†ํ•ด๋„ ๊ฒฐ๊ณผ๋Š” ๋˜‘๊ฐ™๋‹ค. ์„œ๋ฒ„๋Š” socat ... EXEC:/home/chall/chall ๋กœ ์ด ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๊ทธ๋Œ€๋กœ ์‹คํ–‰ํ•  ๋ฟ์ด๋ผ, ๋„คํŠธ์›Œํฌ๋กœ ๋„˜์–ด์˜ค๋Š” ๊ฑด "Hello Beginners!" ํ•œ ์ค„์ด ์ „๋ถ€๋‹ค.

๋ผ์ด๋ธŒ ์„œ๋น„์Šค ์ ‘์† โ€” flag๋Š” ์˜ค์ง€ ์•Š๋Š”๋‹ค
๋ผ์ด๋ธŒ ์„œ๋น„์Šค ์ ‘์† โ€” flag๋Š” ์˜ค์ง€ ์•Š๋Š”๋‹ค

์ •๋ฆฌํ•˜๋ฉด ์„œ๋น„์Šค(๋ฐ”์ด๋„ˆ๋ฆฌ)๋Š” flag๋กœ ๊ฐ€๋Š” ๊ธธ์ด ์•„๋‹ˆ๋‹ค. flag๋Š” ๋‹ค๋ฅธ ๊ณณ์— ์žˆ๋‹ค.


๐Ÿ’ฃ ํ•ต์‹ฌ โ€” flag๋Š” ์ด๋ฏธ์ง€ ์•ˆ์œผ๋กœ ADD ๋œ๋‹ค

Dockerfile์„ ๋‹ค์‹œ ๋ณธ๋‹ค. ๊ฐ€์šด๋ฐ ๋‘ ์ค„๊ณผ ๊ถŒํ•œ ์„ค์ •์ด ์ „๋ถ€๋‹ค.

ENV user chall
 
ADD ./deploy/flag /home/$user/flag      # flag ํŒŒ์ผ์„ ์ด๋ฏธ์ง€ ์•ˆ์œผ๋กœ ๋ณต์‚ฌ
ADD ./deploy/$user /home/$user/$user    # ๋ฐ”์ด๋„ˆ๋ฆฌ๋„ ๋ณต์‚ฌ
 
RUN chown root:$user /home/$user/flag
RUN chmod 440 /home/$user/flag          # root์™€ chall ๊ทธ๋ฃน๋งŒ ์ฝ๊ธฐ
 
USER chall
CMD socat -T 30 TCP-LISTEN:$chall_port,reuseaddr,fork EXEC:/home/$user/$user

flag ํŒŒ์ผ์ด ์ด๋ฏธ์ง€์˜ /home/chall/flag ๋กœ ๋“ค์–ด๊ฐ€๊ณ , ๊ถŒํ•œ์€ 440 root:chall ์ด ๋œ๋‹ค. ์ฆ‰ chall ๊ทธ๋ฃน์— ์†ํ•œ ์‚ฌ์šฉ์ž๋ผ๋ฉด ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ปจํ…Œ์ด๋„ˆ๋Š” USER chall ๋กœ ๋Œ์•„๊ฐ„๋‹ค โ€” ๋ฐ”์ด๋„ˆ๋ฆฌ(chall ์‚ฌ์šฉ์ž, chall ๊ทธ๋ฃน)๋Š” ๊ทธ flag๋ฅผ ์ฝ์„ ๊ถŒํ•œ์ด ์žˆ์ง€๋งŒ, ์ •์ž‘ flag๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์—†์„ ๋ฟ์ด๋‹ค.

์›๋ž˜ pwnable ๋ฌธ์ œ๋ผ๋ฉด ์—ฌ๊ธฐ์„œ ๋ฐ”์ด๋„ˆ๋ฆฌ์˜ ๋ฒ„๊ทธ๋ฅผ ์ฐพ์•„ ์…ธ์„ ๋”ฐ๊ณ  cat /home/chall/flag ๋ฅผ ํ–ˆ์„ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฐ”์ด๋„ˆ๋ฆฌ์—” ๋ฒ„๊ทธ๊ฐ€ ์—†๋‹ค. ๋Œ€์‹  ๋ฌธ์ œ ์„ค๋ช…์ด ๊ธธ์„ ์•Œ๋ ค ์ค€๋‹ค โ€” "Dockerfile์„ ๋นŒ๋“œํ•ด์„œ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ณ  ์‹คํ–‰ํ•ด ๋ณด๋ผ." ๊ทธ ์ด๋ฏธ์ง€ ์•ˆ์—๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ฐ›์€ deploy/flag ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋“ค์–ด ์žˆ๋‹ค.

flag๋Š” ์„œ๋น„์Šค๊ฐ€ ์•„๋‹ˆ๋ผ ์ด๋ฏธ์ง€ ์•ˆ์— ๊ตฌ์›Œ์ง„๋‹ค
flag๋Š” ์„œ๋น„์Šค๊ฐ€ ์•„๋‹ˆ๋ผ ์ด๋ฏธ์ง€ ์•ˆ์— ๊ตฌ์›Œ์ง„๋‹ค
โ–ถ๐Ÿ› ์‚ฝ์งˆ โ€” ๋ฐ”์ด๋„ˆ๋ฆฌ์—์„œ ์ทจ์•ฝ์ ๋ถ€ํ„ฐ ์ฐพ์œผ๋ ค ํ–ˆ๋‹ค

misc์ง€๋งŒ socat์œผ๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋…ธ์ถœํ•˜๋Š” ๋ชจ์–‘์ƒˆ๊ฐ€ pwnable๊ณผ ๋˜‘๊ฐ™์•„์„œ, ๋ฐ˜์‚ฌ์ ์œผ๋กœ chall ์—์„œ ๋ฒ„๊ทธ๋ถ€ํ„ฐ ์ฐพ์•˜๋‹ค. file โ†’ PIE์— NX, objdump๋กœ main์„ ๊นŒ ๋ณด๋‹ˆ puts ํ•œ ์ค„. ์ž…๋ ฅ๋„, ํฌ๋งท ์ŠคํŠธ๋ง๋„, ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์ง€์ ๋„ ์—†๋‹ค. ํ‘œ์ค€ ์ž…๋ ฅ์„ ์ค˜ ๋ด๋„ ๋ฐ˜์‘์ด ์—†๋‹ค.

$ ./chall
Hello Beginners!
$ echo AAAA | ./chall
Hello Beginners!

๋ฐ”์ด๋„ˆ๋ฆฌ์— ๊ณต๊ฒฉ๋ฉด์ด 0์ด๋ผ๋Š” ๊ฑธ ๋ฐ›์•„๋“ค์ด๊ณ  ๋ฌธ์ œ ์„ค๋ช…("Dockerfile์„ ๋นŒ๋“œํ•˜๋ผ")์„ ๋‹ค์‹œ ์ฝ๊ณ  ๋‚˜์„œ์•ผ, ์ด ๋ฌธ์ œ๊ฐ€ ์ต์Šคํ”Œ๋กœ์ž‡์ด ์•„๋‹ˆ๋ผ ๋ฐฐํฌ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๋Š” ์‹ค์Šต์ด๋ผ๋Š” ๊ฑธ ์•Œ์•˜๋‹ค. flag๋ฅผ ์ค„ ์ฃผ์ฒด๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์ด๋ฏธ์ง€์˜€๋‹ค.



๐ŸŽฏ ํ’€์ด โ€” ์ง์ ‘ ๋นŒ๋“œํ•ด์„œ flag ๊บผ๋‚ด๊ธฐ

๋ฐฉ๋ฒ•์€ Dockerfile์ด ์‹œํ‚ค๋Š” ๊ทธ๋Œ€๋กœ๋‹ค. ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•œ๋‹ค.

docker build -t exercise-docker .

๋นŒ๋“œ ๋กœ๊ทธ๋ฅผ ๋ณด๋ฉด Dockerfile์˜ ๊ฐ ์ค„์ด ๋ ˆ์ด์–ด๋กœ ์Œ“์ด๋Š” ๊ฒŒ ๊ทธ๋Œ€๋กœ ๋ณด์ธ๋‹ค โ€” apt-get install socat, adduser chall, ๊ทธ๋ฆฌ๊ณ  ADD ./deploy/flag /home/chall/flag ๋กœ flag๊ฐ€ ์ด๋ฏธ์ง€ ์•ˆ์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.

docker build โ€” flag๊ฐ€ ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด๋กœ ๋“ค์–ด๊ฐ„๋‹ค
docker build โ€” flag๊ฐ€ ์ด๋ฏธ์ง€ ๋ ˆ์ด์–ด๋กœ ๋“ค์–ด๊ฐ„๋‹ค

์ด์ œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋„์šด๋‹ค. ์„œ๋น„์Šค(socat)์— ๋ถ™์œผ๋ฉด ์„œ๋ฒ„์™€ ๋˜‘๊ฐ™์ด "Hello Beginners!"๋งŒ ๋‚˜์˜ค์ง€๋งŒ, ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ chall ์‚ฌ์šฉ์ž๋กœ flag ํŒŒ์ผ์„ ์ง์ ‘ ์ฝ์œผ๋ฉด ๋์ด๋‹ค. chall ์€ chall ๊ทธ๋ฃน์ด๋ผ 440 root:chall ํŒŒ์ผ์„ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

docker run -d --rm --name exdoc -p 2222:2222 exercise-docker
 
# ์„œ๋น„์Šค๋กœ๋Š” ์ธ์‚ฌ๋ง๋งŒ
nc 127.0.0.1 2222            # โ†’ Hello Beginners!
 
# ์ด๋ฏธ์ง€ ์•ˆ์— ๊ตฌ์›Œ์ง„ flag๋ฅผ chall ์‚ฌ์šฉ์ž๋กœ ์ฝ๊ธฐ
docker exec -u chall exdoc cat /home/chall/flag
์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ โ†’ chall ์‚ฌ์šฉ์ž๋กœ flag ์ฝ๊ธฐ
์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ โ†’ chall ์‚ฌ์šฉ์ž๋กœ flag ์ฝ๊ธฐ
DH{docker_exercise}

ls -l ๋กœ ํ™•์ธ๋˜๋“ฏ flag๋Š” -r--r----- root chall ๊ถŒํ•œ์ด๊ณ , id ๋กœ ๋ณด๋ฉด ์šฐ๋ฆฌ๊ฐ€ uid=1000(chall) groups=1000(chall) ์ด๋ผ ๊ทธ๋ฃน ์ฝ๊ธฐ ๊ถŒํ•œ์œผ๋กœ ํ†ต๊ณผํ•œ๋‹ค. ๋ผ์ด๋ธŒ ์„œ๋ฒ„๋„ ๊ฐ™์€ Dockerfile๋กœ ๋นŒ๋“œ๋œ ๊ฐ™์€ ์ด๋ฏธ์ง€๋ฅผ ๋Œ๋ฆฌ๋ฏ€๋กœ, ์ด๋ฏธ์ง€ ์•ˆ์˜ flag๊ฐ€ ๊ณง ๋‹ต์ด๋‹ค.


๐Ÿ“ ๊ฒฐ๋ก 

์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์— ๋„ฃ์€ ํŒŒ์ผ์€ "์ˆจ๊ธด ๊ฒƒ"์ด ์•„๋‹ˆ๋‹ค. ์ด๋ฒˆ ๋ฌธ์ œ๋Š” ํ•™์Šต์šฉ์ด๋ผ flag๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฐ›์•„ ๋นŒ๋“œ๋งŒ ํ•˜๋ฉด ๋์ง€๋งŒ, ๊ฐ™์€ ์›๋ฆฌ๊ฐ€ ์‹ค๋ฌด์—์„œ๋Š” ์‚ฌ๊ณ ๋กœ ์ด์–ด์ง„๋‹ค. ์ด๋ฏธ์ง€์— ํ•œ ๋ฒˆ ADD/COPY๋œ ๋น„๋ฐ€์€ ๋ ˆ์ด์–ด์— ๋ฐ•์ œ๋˜์–ด, ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ์ด๋ผ๋ฉด docker save๋กœ ๋ ˆ์ด์–ด tar๋ฅผ ํ’€๊ฑฐ๋‚˜ docker history๋กœ ๋นŒ๋“œ ๋‹จ๊ณ„๋ฅผ ๋“ค์ถฐ ๊ทธ๋Œ€๋กœ ๊บผ๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ค‘๊ฐ„์— RUN rm ์œผ๋กœ ์ง€์›Œ๋„ ์•ž ๋ ˆ์ด์–ด์—” ๋‚จ๋Š”๋‹ค.

์ •๋ฆฌํ•˜๋ฉด,

  1. ๋น„๋ฐ€์€ ์ด๋ฏธ์ง€์— ๊ตฝ์ง€ ์•Š๋Š”๋‹ค. API ํ‚คยท์ธ์ฆ์„œยทflag ๊ฐ™์€ ๋ฏผ๊ฐ ํŒŒ์ผ์€ ๋นŒ๋“œ ํƒ€์ž„ ADD/COPY ๋Œ€์‹  ๋Ÿฐํƒ€์ž„์— ์ฃผ์ž…ํ•œ๋‹ค โ€” ๋ณผ๋ฅจ ๋ฐ”์ธ๋“œ ๋งˆ์šดํŠธ, ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ๋ณ€์ˆ˜, BuildKit --secret ๋งˆ์šดํŠธ(๋ ˆ์ด์–ด์— ๋‚จ์ง€ ์•Š์Œ), ๋˜๋Š” ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ์˜ ์‹œํฌ๋ฆฟ ๊ธฐ๋Šฅ.
  2. ์ด๋ฏธ์ง€๋Š” ๋ฐฐํฌ๋ฌผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ์†์— ๋„ฃ์œผ๋ฉด ๊ทธ ์•ˆ์˜ ๋ชจ๋“  ๋ ˆ์ด์–ด๋ฅผ ๋“ค์—ฌ๋‹ค๋ณผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ „์ œ๋กœ ๋ฌด์—‡์„ ๋„ฃ์„์ง€ ์ •ํ•œ๋‹ค.
  3. ์ฑŒ๋ฆฐ์ง€ ๋ฐฐํฌ ๊ตฌ์กฐ๋ฅผ ์ฝ๋Š” ์Šต๊ด€. ์›Œ๊ฒŒ์ž„์˜ Dockerfile์€ "๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์–ด๋–ค ๊ถŒํ•œยทํ™˜๊ฒฝ์—์„œ ๋„๋Š”์ง€"๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณด์—ฌ ์ค€๋‹ค. ๋กœ์ปฌ์—์„œ ๊ฐ™์€ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•ด ๋‘๋ฉด ์ต์Šคํ”Œ๋กœ์ž‡์„ ์„œ๋ฒ„์— ์˜๊ธฐ ์ „์— ๋™์ผ ํ™˜๊ฒฝ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค โ€” ์ด ์‹ค์Šต์ด ๊ฐ€๋ฅด์น˜๋ ค๋Š” ์ง„์งœ ๋„๊ตฌ๋‹ค.

์ด ๊ธ€์ด ๋„์›€์ด ๋๋‚˜์š”?

Comments

๋Œ“๊ธ€

0๊ฐœ

๋Œ“๊ธ€์„ ๋‚จ๊ธฐ๋ ค๋ฉด ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•ด์š”. (๋„ค์ด๋ฒ„ ยท ๊ตฌ๊ธ€ ๊ณ„์ •)

๋Œ“๊ธ€ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ค‘โ€ฆ

Related

๊ด€๋ จ ๊ธ€

3๊ฐœ
[๐Ÿฅ‰ Bronze 2] ์ง€์šด ์ค„ ์•Œ์•˜๋˜ flag โ€” DreamHack blue-whale ํ’€์ด
blog

[๐Ÿฅ‰ Bronze 2] ์ง€์šด ์ค„ ์•Œ์•˜๋˜ flag โ€” DreamHack blue-whale ํ’€์ด

Dockerfile์ด flag ๋‚ด์šฉ์„ 'ํŒŒ์ผ ์ด๋ฆ„'์œผ๋กœ touch ํ•œ ๋’ค rm * ๋กœ ์ง€์šด๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ๋‚จ์ง€๋งŒ, ๋„์ปค ์ด๋ฏธ์ง€๋Š” ๋ ˆ์ด์–ด(tar)์˜ ๋”๋ฏธ๋ผ ์ƒ์œ„ ๋ ˆ์ด์–ด์˜ ์‚ญ์ œ๋Š” ํ•˜์œ„ ๋ ˆ์ด์–ด๋ฅผ ๋ชป ์ง€์šด๋‹ค. Docker Hub์˜ ๊ณต๊ฐœ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„ docker save๋กœ ๋ ˆ์ด์–ด๋ฅผ ๊นŒ๋ฉด touch ๋‹จ๊ณ„ ๋ ˆ์ด์–ด์— flag ํŒŒ์ผ๋ช…์ด ๊ทธ๋Œ€๋กœ ๋ฐ•ํ˜€ ์žˆ๋‹ค.
#dreamhack#ctf#misc+6
2026-06-27#dreamhack +5
[๐Ÿฅ‰ Bronze 1] ์ •๋‹ต์€ ์˜ˆ์‹œ ์•ˆ์— ์žˆ์—ˆ๋‹ค โ€” DreamHack [CodeEngn] Malware L01 ํ’€์ด
blog

[๐Ÿฅ‰ Bronze 1] ์ •๋‹ต์€ ์˜ˆ์‹œ ์•ˆ์— ์žˆ์—ˆ๋‹ค โ€” DreamHack [CodeEngn] Malware L01 ํ’€์ด

์•…์„ฑ์ฝ”๋“œ ์†Œ์Šค ์ฝ”๋“œ ์กฐ๊ฐ ํ•˜๋‚˜๋งŒ ๋˜์ ธ์ฃผ๊ณ  "์ด๊ฒƒ์˜ ๊ณต๊ฒฉ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€"๋ฅผ ๋ฌป๋Š” ๋ฌธ์ œ. ์ฝ”๋“œ๋ฅผ ๋œฏ์–ด๋ณด๋ฉด SYN ํ”Œ๋ž˜๊ทธ๋ฅผ ๊ณ ์ •ํ•˜๊ณ  ์ถœ๋ฐœ์ง€ IP๋ฅผ ๋งค ํŒจํ‚ท ๋žœ๋ค์œผ๋กœ ๋ฐ”๊พธ๋ฉฐ ACK ์—†์ด ์˜์›ํžˆ ์˜๋Š”, ๊ต๊ณผ์„œ์ ์ธ SYN Flood๋‹ค. ๋” ์ •ํ™•ํ•œ ์šฉ์–ด๋กœ ๋‹ต์„ ๋ƒˆ๋‹ค๊ฐ€ ๋‘ ๋ฒˆ ์˜ค๋‹ต์„ ๋จน๊ณ  ๋‚˜์„œ์•ผ, ๋ฌธ์ œ๊ฐ€ ์ค€ ์˜ˆ์‹œ ๋ฌธ๊ตฌ ์ž์ฒด๊ฐ€ ์ •๋‹ต์ด์—ˆ๋‹ค๋Š” ๊ฑธ ๊นจ๋‹ฌ์•˜๋‹ค.
#dreamhack#ctf#misc+3
2026-07-20#dreamhack +3
[๐Ÿฅ‰ Bronze 4] ๋˜‘๊ฐ™์•„ ๋ณด์ด๋Š” ์ด๋ฏธ์ง€ 100์žฅ ์† ์ง„์งœ ํ•˜๋‚˜ โ€” DreamHack Find Real One ํ’€์ด
blog

[๐Ÿฅ‰ Bronze 4] ๋˜‘๊ฐ™์•„ ๋ณด์ด๋Š” ์ด๋ฏธ์ง€ 100์žฅ ์† ์ง„์งœ ํ•˜๋‚˜ โ€” DreamHack Find Real One ํ’€์ด

๋ฌธ์ œ ์„ค๋ช…์ด ํ™”๋ฉด์— ๋˜‘๊ฐ™์ด ์ƒ๊ธด ์ธ๋„ค์ผ 100๊ฐœ๋กœ ๋„๋ฐฐ๋ผ ์žˆ๋‹ค. ํŒŒ์ผ๋„ ์„œ๋ฒ„๋„ ์—†๊ณ , ๋ˆˆ์œผ๋กœ๋Š” 100๊ฐœ๊ฐ€ ์ „๋ถ€ ๊ฐ™์•„ ๋ณด์ธ๋‹ค. ๊ฐ ์ด๋ฏธ์ง€์˜ ํด๋ฆญ ๋Œ€์ƒ(href)์„ ๋‹ค์ˆ˜๊ฒฐ๋กœ ๋น„๊ตํ•˜๋ฉด 99๊ฐœ๋Š” "This is fine" ๋ฐˆ์œผ๋กœ, 1๊ฐœ๋งŒ ์‹ค์ œ flag ์ด๋ฏธ์ง€๋กœ ์—ฐ๊ฒฐ๋œ๋‹ค๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
#dreamhack#ctf#web+3
2026-07-19#dreamhack +3