LEVEL 2

basic_exploitation_002

pwnable
  • 문제 정보
  • 풀이 102
  • 난이도 투표 46
  • 질문 3
  • 최근 풀이자 1382
  • 댓글 80

문제 설명

Description

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

Environment
Arch:     i386-32-little
RELRO:    Partial RELRO
Stack:    No canary found
NX:       NX enabled
PIE:      No PIE (0x8048000)
Reference

Format String Bug

출제자 정보

avatar
Dreamhack
대표 업적 없음

First Blood!

avatar
Racrua
Closed Beta Tester
출제된 지 22시간 만에 풀이 완료!

난이도 투표 46

질문 3

문제 풀이에 어려움이 있으신가요?
커뮤니티에서 문제에 대한 질문하고 답변 얻기
문제에 대해서 질문이 있습니다.
생각 순서는 이렇습니다. 우선 checksec 을 통해 운영체제를 확인하여 32bit 인것을 확인하였습니다. printf(buf); 코드를 보고 난 후, 이 부분에서 FSB 를 통해 메모리 주소값을 얻어내면 되겠구나. exit(0) 으로 끝나, ret 값이 없는건가? exit 함수는 got 에 주소값이 있다. 그럼 이 부분을 Got overwrite 를 해보자. got overwrite 를 통해서 exit_got 값 에는 get_shell 함수의 주소가 들어가면 메인함수가 실행되면서 system('/bin/sh'); 이 실행되겠지. 위와 같은 순서로 shellcode 를 작성하였습니다. 따라서 read를 통해 AAAA %p %p %p %p %p --- 를 넣어, AAAA 가 어디에 값이 들어가는지 offset 을 확인했더니, 1번째 offset 에서 값이 나오는 것을 확인할 수 있었습니다. ( 스택으로 인자를 전달해서 1번째인것인가? 라는 의문을 가졌습니다. %p 를 여러번 하였을 때, 아래와 같은 구조가 나와 어떻게 분석을 해야하지? 에 대해서도 물어보고 싶습니다.. ) image.png 그래서 이 부분에 ELF로 구한 exit의 got주소를 넣었습니다. 이후 got 주소를 출력해보았을 때, 8byte 를 차지하고 있는 것으로 보아, get_shell의 주소 ( gdb 를 통해 얻었습니다. )를 4byte 씩 나누어 1번째 offset 과 2번째 offset에 집어넣었습니다. 1번째 offset 의 경우, 앞서 구한 got의 주소를 넣은 부분의 크기만큼 빼주었고 값을 집어넣었다 생각했는데, 쉘이 EOF로 끊기고 맙니다. 질문은 아래와 같습니다. 어떤 부분에서 잘못되었나요? 위와 같이 AAAA %p %p .. 를 하였을 때, 스택 구조에 대해서 어떻게 해석을 하면 되나요?
avatar Sunja

최근 풀이자 1382

대림동총잡이
대표 업적 없음
inca
대표 업적 없음
le0s1mba
워게임 고인물
avatar
cyalume
강의 수강: 10
한영
대표 업적 없음
daeseong1209
대표 업적 없음
hyunz
대표 업적 없음
Madb33
강의 수강: 10
waffle
대표 업적 없음
ㄴㅇ
대표 업적 없음

댓글 80

daeseong1209
대표 업적 없음
음...
avatar
스카이넷
강의 수강: 10
ez
avatar
is07king
워게임: 1
나는 바보다
avatar
나는재영
대표 업적 없음
구구구구구구구구구구구구구구구구구구구구구구구굳
avatar
Ox0ne
대표 업적 없음
근데 30초 제한은 왜 두는거임..? 30초 제한 없으면 언인텐이라도 일어나나
avatar
Beluga
워게임: 20
ez
avatar
msh1307
대표 업적 없음
어렵다
리버싱하는 범재
대표 업적 없음
지금까지 한 문제중 가장 어려웠음...
하헌진
대표 업적 없음
어려워욧
anous
대표 업적 없음
재밌어요