profile image

L o a d i n g . . .

팀원분들이 직접 제작하신 포너블 문제를 풀어보는 시간이다.

(이번엔 종학님이 제작하신 문제들에 대한 롸업이다.)

 

1번 문제)

문제

보호기법 확인

 

바이너리를 실행한 모습이다.

buf, key의 주소를 출력하고 입력을 받는다.

 

소스 코드이다.

gets() 함수 입력 시 bof 가 발생한다.

key 값을 변경해서 쉘을 획득하면 될 것 같다.

 

 

문제 해결 과정

main 을 디스어셈블한 모습

buf의 위치 : ebp - 0x36

key의 위치 : ebp - 0x4

offset -> 50byte

 

payload는 다음과 같을 것이다.

"A"*50 + 0x44454144

 

 

익스플로잇

익스플로잇 코드

 

쉘을 획득하였다!

 

 

2번 문제)

문제

보호기법 확인

 

바이너리를 실행한 모습

buf 의 주소를 출력해주고, 입력을 받는다.

 

소스 코드이다.

buf 의 주소를 출력해주고 입력을 받는다.

이때 gets() 로 입력 받을 시 bof 가 발생한다.

-> 쉘코드를 넣고, ret 까지 더미로 채운 다음 ret 에 buf 의 시작주소를 넣어주면 될 듯하다.

 

buf 의 위치 : ebp - 100

offset : 104

 

따라서 payload는 다음과 같을 것이다.

25byte shellcode + "A"*79 + buf 의 시작주소

 

 

익스플로잇

익스플로잇 코드

 

쉘을 획득하였다!!

'Hacking > Pwnable' 카테고리의 다른 글

[Pwnable] Heap1  (0) 2021.05.05
[P4C] pwnable problem writeup3  (0) 2021.04.29
[P4C] pwnable problem writeup1  (0) 2021.04.29
[P4C] Pwnable problem 3 - writeup  (0) 2021.04.27
[P4C] Pwnable problem 3  (0) 2021.04.27
복사했습니다!