ftz level5 를 풀어보겠습니다.
우선 힌트를 보겠습니다. /usr/bin/level5 프로그램을 실행시키면 /tmp 에 level5.tmp 라는 임시파일을
생성한다고 합니다.
우선 level5 가 어떤 파일인지 조회해 보겠습니다.
역시 소유자가 level6 입니다. 그러면 level5 를 생성해서 생성된 파일을 조회해 보겠습니다.
들어가기 전에 /tmp 디렉터리에 관해 잠시 알아보겠습니다.
*/tmp : 임시 저장 디렉터리입니다. 프로그램이나 프로세스 작업 등 여러 프로그램에 관해 실행될때 임시로 생성되는 파일을 저장하는 디렉터리이고, 보통 모든 사용자가 접근 가능한 디렉터리 입니다.
위 그림을 보시면 퍼미션에 stiky bit가 설정된 것을 보실 수 있습니다.
허가권과 특정권한에 대한 설명은 아래 글을 참고하시면 됩니다.
2016/11/22 - [Linux] - Linux 허가권(Permission)
보면 모든 사용자가 접근가능하고 자신의 파일에 한해 수정 삭제 할 수 있습니다. 이를 통해 웹서버에서
필수적인 디렉터리라고 볼 수 있습니다. (사용자 개개인의 영역이 필요하기 때문에),
하지만 모든사용자가 접근가능하다는 점에서 보안에는 취약함을 알 수가 있습니다. 악의적인 코드를
심거나 등의 행동을 통해 취약점을 파고들 수 가 있습니다.
이어서 진행하겠습니다. level5를 실행하였더니, level5.tmp 파일이 조회가 되지 않습니다.
프로그램실행시에 생기나 프로그램이 끝남과 동시에 tmp 파일이 제거된다고 유추할 수 있는데 여기에
초점을 맞추고 풀어 보겠습니다.
2가지 방법을 생각할 수 있습니다.
1. 새로운 파일을 생성해 심볼릭 링크를 거는 방법
2. 1번의 반복과정으로 level5를 여러번 실행하는 코드와 링크를 여러번거는 프로그램을 만들어
동시에 실행해 틈이 생기는 파일을 획득하는 방법.
우선, 1번이 쉬워보이니 해보겠습니다. 심볼릭링크를 통한 해킹기법은 setuid 가 걸린 파일에
일반사용자가 심볼릭링크를 걸어 해당 파일을 손상시키거나 수정시킵니다.
cho라는 빈파일을 만들고 level5.tmp 파일에 심볼릭 링크를 걸어줍니다.
touch 명령과 링크관련 내용은 아래 글을 참조하시면됩니다.(링크관련내용은 3. cp 명령에 있습니다.)
2016/11/08 - [Linux] - 6. Linux 기본 명령어(파일관련 ls, mv, cp, rm, touch, file, find)
링크됨을 확인하였으면, level5 를 실행해 줍니다. 실행후에 level5.tmp 나 cho 파일을 조회하면
다음으로 가는 암호를 획득할 수 있습니다.
ftz level5 풀이였습니다.
'Hack > ftz' 카테고리의 다른 글
ftz 풀이 level7 (0) | 2016.11.29 |
---|---|
ftz 풀이 level6 (0) | 2016.11.28 |
ftz 풀이 level4 (0) | 2016.11.23 |
ftz 풀이 level3 (0) | 2016.11.21 |
ftz 풀이 level2 (0) | 2016.11.19 |
댓글