[HackCTF] :pwn: gift

두비니

·

2021. 3. 24. 02:28

 

 

 

 

 

 

 

뭐야; 너무좋아

binsh, system모두 주니 바로 이용합시다. 거기다가 printf는 바로 프린트시켜서 fsb도 발생하네요.

그래서 바로 진행해보도록 하겠습니다.

 

 

 

확인해보니깐 binsh에는 아무것도 없네요. 저기에다 입력하면 되겠죠?

 

시나리오는 다음과 같습니다.

1. binsh에 "/bin/sh"저장 (fsb취약점 이용)

2. system(&binsh) 실행 (ret overwrite 이용)

 

그럼 바로 해봅시다.

 

일단 /bin/sh\x00자체를 한번에 16진수로 바꾸어 넣기에는 32비트 환경에서 너무 큽니다. 따라서 잘라서 넣어줘야하는데

 

str / b i n / s h \x00
hex 0x2f 0x62 0x69 0x6e 0x2f 0x73 0x68 00

 

각 hex/str값은 이렇게 되어있으니

 

/b = 0x622f

in = 0x6e69 >> 0x6e69 - 0x622f = 0x0C3A

/s = 0x732f >> 0x732f - 0x6e69 = 0x04C6

h\x00 = 0x68 >> 0x10068 - 0x732f = 0x8D39

 

으로 계산해서 2바이트씩 넣어주면 될 것 같다. 기존의 hex값에서 추가적으로 계산한 이유는 이미 출력된 바이트수만큼 입력되기 때문입니다.

일단 이걸 가지고 익스를 짜봅시다.

 

 

잘 이해 안되는 분은 여기 글

holinder4s.tistory.com/29

 

[Tip] Format String Bug 팁

## Format String Bug 팁들 1. 스택 내 멀리 있는 주소의 값을 printf("%x%x...%x")로 찍어내지 않고 한 번에 출력하는 방법 => printf("%길이$08x") -> ex) printf("%1337$08x") => 위와 같이 fsb를 터뜨리면 스..

holinder4s.tistory.com

 

 

개인적으로 맨 마지막에 gets가 아니라 fgets로 입력을 제한받았으면 fsb취약점을 더 잘 사용할 수 있지 않았을까 싶네요. 아무튼 굳굳!

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

[HackCTF] :pwn: pwning  (0) 2021.03.27
[HackCTF] :rev: static  (0) 2021.03.25
[HackCTF] :pwn: Look at me  (0) 2021.03.23
[HackCTF] :pwn: Beginner_Heap  (0) 2021.03.22
[HackCTF] :pwn: RTL_Core  (0) 2021.03.21