정보보안/FTZ

[FTZ]level18

b1ackhand 2022. 7. 31. 20:41

문제 힌트를 보면 다음과 같이 긴 코드가 보인다.

조건을 보면 check 안에 0xdeadbeaf가 있을때 shellcode를 실행해 준다.

그렇게 하기 위해서 입력받은 값에 따라

switch문이 동작하는 것을 볼 수 있다.

 

취약점은

string[count] = x 부분에서 생긴다

count가 만약 음수라면 자신보다 뒤에있는 변수에 접근 가능하기 때문이다.

disas한 부분을 보면

deadbeef와 비교하는 부분은 ebp - 104

string 부분은 ebp - 100 이다.

 

만일 입력받은 명령어가 0x08 이라면 count-- 되는 점을 이용해서

string[-1], string[-2] 등에 접근할 수 있다. 그리고 이는  check 부분에 해당한다.

 

'정보보안 > FTZ' 카테고리의 다른 글

[FTZ]level20  (0) 2022.08.13
[FTZ]level19  (0) 2022.07.31
[FTZ]level17  (0) 2022.07.25
[FTZ]level16  (0) 2022.07.25
[FTZ]level15  (0) 2022.07.25