문제 힌트를 보면 다음과 같이 긴 코드가 보인다.
조건을 보면 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 |