전체 글 127

web - Dream Gallery

드림핵 웹 2레벨 문제이다. 갤러리 사이트에서 외부 요청 기능에 문제가 있는 것 같다! /request 라우트를 잘 봐보자! 기능은사용자가 url입력 시 urlopen()을 통해 해당 주소 데이터를 읽어온 뒤, 이것을 base64로 인코딩해 새로운 목록으로 추가한다. 여기서 사용된 보안 필터는url.startswith("file://")을 통해 로컬 파일에 직접 접근하는 file프로토콜을 막았고,"flag" in url을 통해 문자열 내에 있는 flag단어가 있는 것을 막았다.또한 title == ''을 통해 제목이 없으면 요청을 처리하지 않는다. 이러한 부분들을 통해 실제로 풀이를 시작하자!사이트에 접속하면 이런 모습을 볼 수 있다.왹져 선구리 너무 귀엽다!! 이미지 요청에 접속해여기에 앞에 띄어쓰기..

보안/Dreamhack 2026.02.06

web - Gyul_Console

이 서버에는 귤 농장 주인이 깜빡하고 지우지 않은 실험용 콘솔이 있습니다./console에 표현식을 넣으면 서버가 그 표현식을 평가해 결과를 돌려줍니다.적절한 입력 값을 넣어, 플래그를 획득하세요! 라고 한다. 코드를 보면 console에서 입력받는 값을 아무 검증없이 eval()함수에 넣는 것을 볼 수 있다.open('/flag.txt').read()이걸 console에 넣는 걸로 하자! 웹사이트에 실제로 접속하면Console을 클릭하면 아래와 같은 화면이 보인다.injection을 시도하면 바로 flag를 얻을 수 있다! 이 문제는 다른 문제와 달리 DH{}가 아닌 다른 형태로 나온다!겁먹지말고 그냥 넣어보쟈

보안/Dreamhack 2026.02.05

Pwnable - oneshot

드림핵 포너블 1레벨 문제이다. 바이너리와 소스코드를 준다고 한다!취약점을 찾아서 flag를 확인하자!환경Ubuntu 16.04 Arch: amd64-64-little -> 이번에는 64비트 문제이다!RELRO: Partial RELRO -> GOT Overwrite가 가능하다고 한다.Stack: No canary found -> 스택 버퍼 오버플로우를 통해 리턴 주소(RET)를 덮어쓸 수 있다.NX: NX enabled PIE: PIE enabled -> 코드 주소를 알아내야 한다. 문제 파일이 코드를 보면 버퍼의 크기는 16바이트 이지만 입력은 46바이트를 입력 받으며, 버퍼 오버플로우가 가능하다.16(msg) + 8(check) + 8(SFP) + 8(RET) ..

보안/Dreamhack 2026.02.05

Pwnable - off_by_one_001

드림핵 시스템 1레벨 문제이다! 환경을 먼저 살펴 보자Ubuntu 16.04 Arch: i386-32-little -> 32비트RELRO: Partial RELRO Stack: No canary found -> 카나리 없음! (스택 버퍼 오버 플로우 가능)NX: NX enabled -> 직접 코드 작성 불가PIE: No PIE (0x8048000) -> 주소 고정 그리고!문제 제목 자체인 취약점 off_by_one은 반복문이나 경계 검사에서 딱 1바이트 더 입력 받을 때 발생한다.보통 C 언어에서 len 문자열 끝의 널 바이트(\0) 공간을 계산하지 못했을 때 발생한다.32비트 환경에서는 1바이트가 매우 치명적인데, 바로 Saved EBP(SFP)의 가장 낮은 바이트..

보안/Dreamhack 2026.02.04

Pwnable - basic_exploitation_001

드림핵 1레벨 시스템 해킹 문제이다. 환경은1. Ubuntu 16.04 2. Arch: i386-32-little 3. RELRO: No RELRO 4. Stack: No canary found 5. NX: NX enabled 6. PIE: No PIE (0x8048000)이다. 위에서부터 하나씩 이해해보자! 1. 우분투 버전2. 이 프로그램은 32비트 시스템용이다. 64비트와 메모리 구조나 레지스터 명칭 등 함수 호출 방식이 달라 32비트 방식으로 접근해야 한다.3. 함수의 실제 주소를 가지고 있는 테이블(GOT)를 마음대로 수정할 수 있다는 뜻 (point!)4. 스택 메모리가 넘치는 것을 감시하는 카나리라는 방어 기재가 없다고 한다! 스택 버퍼 오버플로우 공격이..

보안/Dreamhack 2026.02.02

crypto - Almost Random 🌱

암호학 1레벨 문제이다! 문제를 읽어보면,충분히 무작위인 것처럼 보입니다.하지만 무작위성이라는 건 보기보다 훨씬 어렵죠.라고 한다! 이제 문제 파일을 받아서 열어보자chall.py라는 파일이 있다. python의 random모듈을 이용한 PRNG(가상 난수 생성기) 역추적 문제라고 생각된다.rng = random.Random()을 통해 생성기를 초기화한다. 파이썬의 이 모듈은 Mersenne Twister 알고리즘을 사용한다.사용자는 최대 700개의 토큰을 받을 수 있고,다음에 나올 32비트 난수를 정확히 맞추면 flag가 출력되는 형식이라고 한다. 이제 핵심은Mersenne Twister는 내부적으로 624개의 32비트 정수 상태를 가지고 있고,624개의 연속된 32비트 난수를 알아낸다면 알고리즘 내부..

보안/Dreamhack 2026.01.31