LEVEL 1

ssp_000

pwnable
  • 문제 정보
  • 풀이 101
  • 난이도 투표 50
  • 질문 12
  • 최근 풀이자 1232
  • 댓글 60

문제 설명

Desciption

이 문제는 작동하고 있는 서비스(ssp_000)의 바이너리와 소스코드가 주어집니다.
프로그램의 취약점을 찾고 SSP 방어 기법을 우회하여 익스플로잇해 셸을 획득한 후, "flag" 파일을 읽으세요.
"flag" 파일의 내용을 워게임 사이트에 인증하면 점수를 획득할 수 있습니다.
플래그의 형식은 DH{...} 입니다.

Environment
Ubuntu 16.04
Arch:     amd64-64-little
RELRO:    Partial RELRO
Stack:    Canary found
NX:       NX enabled
PIE:      No PIE (0x400000)
Reference

Stack Smashing Protector

출제자 정보

avatar
Dreamhack
대표 업적 없음

First Blood!

KuroNeko
워게임 고인물
출제된 지 1일 만에 풀이 완료!

난이도 투표 50

질문 12

문제 풀이에 어려움이 있으신가요?
커뮤니티에서 문제에 대한 질문하고 답변 얻기
카나리 값 관련 질문 (첫 바이트 0x00)
안녕하세요? 매번 친절하게 알려주셔서 정말 감사합니다. Canary 첫 바이트가 \x00이라고 배운 내용에 대하여 질문이 있습니다. 이해가 잘 안 되어서요.. 수업 내용도 마찬가지이고, 이번 문제도 마찬가지이고 카나리의 값을 찍어보면 제일 첫 주소 (스택 위의 카나리의 가장 낮은 주소값)의 값이 \x00이 아닌 것으로 보입니다. 카나리를 [rbp-8]에 집어 넣는 코드를 실행하면 0x40090a <main+15> mov rax, qword ptr fs:[0x28] <0x4008fb> 0x400913 <main+24> mov qword ptr [rbp - 8], rax 결과는 RAX 0x9456c5587b2c4e00 pwndbg> x/2x $rbp-8 0x7fffffffdf88: 0x7b2c4e00 0x9456c558 RAX 값, 즉fs:[0x28]에서 가져온 qword 사이즈의 값이 0x9456c5587b2c4e00 이고 이걸 스택에 집어넣으면 0x7b2c4e00 0x9456c558와 같이 DWORD 단위로 순서가 앞뒤로 바뀌어 들어갑니다. 이렇게 되면, 스택에서의 카나리 첫바이트가 0x00이 아니라 0x7b가 되는 것 처럼 보여요.. 여기서 궁금한 점이 있습니다. 1) 위의 내용이 맞나요? 연습 문제 풀 때는 카나리 첫 바이트를 0x00으로 덮으니 printf로 카나리 내용이 출력이 되었는데, 제가 뭘 잘못 생각하고 있는지 모르겠습니다....ㅠㅠ 2) 그리고 여기서 왜 4바이트(DWORD 단위로) 순서가 바뀌어 들어가는지요? 리틀엔디안이 적용이 안 되었는데, 왜 안되었는지도 궁금합니다.. 도움 말씀 부탁 드립니다.. 감사합니다
참새는짹짹

최근 풀이자 1232

hwkim301
대표 업적 없음
avatar
Tuple
꿈나무
나이테
대표 업적 없음
후하후히
대표 업적 없음
asphalt
대표 업적 없음
avatar
개구리 왕자
대표 업적 없음
pwnlife
대표 업적 없음
Azan
대표 업적 없음
avatar
Mysecretgarden
대표 업적 없음
b0heme
대표 업적 없음

댓글 60

daeseong1209
시스템 해킹 입문
좋은 문제 감사합니다
avatar
TAFKA
워게임: 50
흥미롭네요
avatar
mini-chip
Perfect 10
좋은 문제입니다~
avatar
LM_R3dzone
워게임 고인물
아이디어가 좋네요
avatar
is07king
워게임: 1
Thinking hard
avatar
KnightChaser
공부벌레
It's not only just stack smashing pew pew game...
avatar
나는재영
대표 업적 없음
geeneoning
Dreamhack CTF S2 Ⅳ 참여
ssp_001 보다 ssp_000 이 더 어려운거같아요,,,,,
anous
대표 업적 없음
정말 어려웠습니다.
하헌진
대표 업적 없음
어려웠습니다 ㅠㅜ