[DreamHack] 폭탄 받아라 !!! 풀이

코딩 파인애플·2026년 8월 13일

CHALLENGE SOLVING

목록 보기
7/10
post-thumbnail

안녕하십니까 코딩 파인애플입니다
이번에는 폭탄 받아라 !!! 에 관해 풀어보겠습니다.

폭탄 받아라 !!!

https://dreamhack.io/wargame/challenges/2833



















...

















문제 파일을 받아보면 💣bomb이라는 파일이 주어집니다

그렇다면 바로 bomb 파일을 Hxd에 돌려보도록 하겠습니다

다음과 같이 시작부터 xz파일의 헤더 시그니처에 해당되는 FD 37 7A 58 5A 00 (아스키는 .7zXZ.) 가 있음을 볼 수 있습니다

무제 파일을 하나 만들어 데이터를 복붙해 .xz 파일을 하나 만들어줍시다

.xz 파일을 열어보면 이렇게 원본 파일의 크기가 압축 크기의 거의 6,846배에 해당되는 용량을 갖고 있음을 볼 수 있습니다

그래도 다행히 압축을 풀더라도 250MB 남짓한 파일이 만들어지므로 앵간한 해병짜장💩컴이 아닌 이상 굴러가지니 압축을 해제하여 Hxd로 분석해봅시다

이렇게 플래그에 해당되는 AF{BOOM_This_is_a_zip_bomb} (...) 을 제외한 모든 데이터가 0으로 도배됨을 알 수 있습니다

flag : AF{BOOM_This_is_a_zip_bomb}
평가 :

👀문제 분석

문제의 원리는 Zip 폭탄 기법을 사용한 공격입니다
예를 들어 bomb.zip 이라는 파일의 압축 용량이 10 MB라 하더라도 압축을 해제하였을 때 실제 용량이 1 TB 이상이 나가는 경우 해당된다고 보면 됩니다

만일 무심코 푼다면 저장 공간이 꽉 차거나, RAM과 CPU가 과도하게 사용되어 프로그램 혹은 시스템 등의 장비를 정지합니다

Zip 폭탄의 대표적인 예로는 42.zip이 존재하는데 해당 파일의 압축된 용량은 42 KB이나 압축된 파일 안에는 5겹으로 16개씩 존재하며 마지막에는 4.3 GB 짜리 파일 (최후의 경고) 이 있는데 이를 풀 경우 전체 용량이 무려 3.99 PB (약 4,183,818GB) 가 됩니다 (역시 모든 것에 대한 궁극적인 질문의 해답)

뭐, 궁금하시면 여기가셔서 직접 하시면 될 것 같습니다 그 전에 자신이 치를 대가를 한 번쯤 더 생각하고 행동에 옮기는 게 좋습니다

만들 자~ 만들 자~ 만들 자~ 만!들!자!

리눅스 기준

yes "반복출력할문자열" | tr -d '\n' | dd bs=1M(블록 사이즈 정의) count=2048(블록의 갯수) > 파일명.txt 
참고 : (1 Mib * 2048 = 2 Gib)

xz -9 파일명.txt

윈도우 기준

작업 경로를 사용자의 바탕화면으로 이동
cd /d "%USERPROFILE%\Desktop" 

바탕화면에 지정된 크기의 더미 파일 (testbomb.txt) 을 생성
fsutil file createnew testbomb.txt 52428800 (생성할 파일의 크기를 바이트 단위로 지정 52,428,400 바이트는 약 50MB)

방금 만든 파일을 최고로 압축하여 testbomb.zip 파일을 생성
powershell -Command "Compress-Archive -Path testbomb.txt -DestinationPath testbomb.zip -CompressionLevel Optimal"

원본 텍스트 파일 제거
del testbomb.txt




이상으로 글을 마치도록 하겠습니다 감사합니다.





profile
안녕하떼요취미로콤푸타배우는고든학교6학년유치원생이빈다주말재외하고(러블럭스해야대요💢💢)주중연재하고안한날애눈이월(February)됨니다(안할수도있음)

0개의 댓글