1. 풀이
- 20byte의 buf 배열 생성 후 gets()로 사용자 입력을 받음
- 기존의 level과 달리 setreuid, system("/bin/sh") 구문 등이 확인되지 않음
- 40byte 만큼의 공간을 할당하여 buf(20byte)+dummy(20byte) 만큼이 있음을 알 수 있음
- 쉘코드를 환경변수로 등록하여 attackme를 실행하여 보았지만 변화없음
- 그 이유는 hint에서 보았듣이 setreuid가 설정되어 있지 않아 BOF가 발생했다 하더라도 level20의 권한을 탈취할 수 없기 때문임
- 따라서, setreuid 및 /bin/sh이 포함된 쉘코드를 환경변수에 저장 후 환경변수의 주소를 RET에 덮어써 쉘코드를 실행
'문제풀이 > FTZ' 카테고리의 다른 글
FTZ Level20 풀이 (0) | 2022.11.08 |
---|---|
FTZ Level18 풀이 (0) | 2022.11.07 |
FTZ Level17 풀이 (0) | 2022.11.07 |
FTZ Level16 풀이 (0) | 2022.11.05 |
FTZ Level15 풀이 (0) | 2022.11.05 |