profile image

L o a d i n g . . .

article thumbnail image
Published 2021. 4. 19. 15:37

1. 문제

보호기법 확인

NX 가 걸려있다.

 

statically linked 된 파일이다.

system 함수를 쓰지 못할 것으로 보인다.

 

ida 로 까본 모습이다.

어쩐지 함수들이 굉장히 많았는데, 정적 링킹 되서 그런 거였다.

 

 

look_at_me() 함수 모습

 

gets() 입력 시 bof 가 발생한다.

 

현재, Nx + aslr 걸려있으며, 주소가 leak 되지 않고 있다. 그런데 정적 링크된 파일이라 system 함수를 이용할 수 없다. 이때 어떻게 쉘을 얻을 수 있을까?

 

 

->쉘코드를 bss 영역에 주입하고, mprotect() 함수를 통해 그 영역을 실행 가능하게 하면 된다.

 

 

mprotect() 함수 발견!

 

 

2. 문제 해결 과정

 

1. gets() 통해 &bss 에 쉘코드 삽입

2. mprotect() 를 이용해 그 영역에 실행 권한 주기

 

구해야 될 것들

 

- bss 영역

bss : 080eb000

- gadget

 

0x8048433

 

- shellcode (x86 : 25byte)

\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80

 

 

- offset

offset = 0x18 + 4 = 28

 

 

3. 익스플로잇

익스플로잇 코드

 

 

성공적으로 플래그를 획득하였다.

'Wargame > HackCTF' 카테고리의 다른 글

[HackCTF] ROP  (0) 2021.04.20
[HackCTF] Gift  (0) 2021.04.19
[HackCTF] Random Key  (0) 2021.04.19
[HackCTF] 1996  (0) 2021.04.18
[HackCTF] Yes or no  (1) 2021.04.16
복사했습니다!