profile image

L o a d i n g . . .

article thumbnail image
Published 2021. 4. 19. 18:07

1. 문제

보호 기법 확인

nx가 걸려있다.

 

 

 

ida 를 통해 까본 모습이다.

1. binsh, system 주소를 leak 한다.

2. fgets() 를 통해 입력받고, 입력받은 것을 출력한다.

3. gets() 를 통해 입력 받는데, bof 가 발생한다.

 

 

바이너리를 실행해보았다.

 

binsh 의 주소는 고정되있고, system 의 주소는 바뀐다.

binsh 의 주소는 아마 bss 영역일테고, system 은 실제 주소를 leak 해주는 것 같다.

 

 

binsh 의 값을 확인해보았다.

처음엔 binsh 주소에 "/bin/sh" 이 실제로 들어가있는 줄 알고 익스를 했는데 잘 안되서 보니 binsh 위치에 아무 값도 들어있지 않았다.

아마 위치만 지정해준 것 같고, 저기다가 "/bin/sh" 을 넣어서 쓰라는 것 같다.

 

 

다음과 같이 실행하면 될 것 같다.

1. gets(&binsh)

2. system(binsh) 실행하면 될 것 같다.

 

 

 

필요한 것들을 구해보자.

- gadget

pr : 0x80483ad

- offset

offset = 0x84 + 4 = 136

 

 

 

2. 익스플로잇

위의 논리대로 페이로드를 작성해보았다.

 

 

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

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

[HackCTF] SysROP  (0) 2021.04.23
[HackCTF] ROP  (0) 2021.04.20
[HackCTF] Look at me  (0) 2021.04.19
[HackCTF] Random Key  (0) 2021.04.19
[HackCTF] 1996  (0) 2021.04.18
복사했습니다!