Jaeseo's Information Security Story

pwn2 - Shadow CTF 2019 (수원대 CTF) 본문

Write UP/Shadow CTF 2019 (수원대 CTF)

pwn2 - Shadow CTF 2019 (수원대 CTF)

Jaeseokim 2019. 11. 23. 03:30

예전에 풀었던 Write Up 업로드 입니다.. 어설퍼도 이해 부탁드립니다.

일단 문제를 풀기 위해 문제에서 알려주는 주소로 SSH 접근합니다.

접근을 하고 나서 ls -la로 현재 경로에 어떤 파일이 있는지 확인합니다.

일단 여기서 문제 풀이를 위해 필요한 파일은 password 파일과 pwn2파일은 소유자가 root로 설정되어 있습니다.

또한 현재 pwn2의 계정의 권한으로는 pwn2 파일을 실행만 가능한 상황으로 보입니다.

(블로그에 늦게 올리면서 깨달은 거지만 사실 password 안에 내용이 permision denided! 였다는 ㅋㅋㅋ 권한이 404인데 왜 못 읽는거지 하면서 이상해 했는데 퍼미션에 대해 잘 아는지에 대해 알고자 낸 문제 였네요.)

이제 일단 pwn2파일이 어떤 파일인지에 대해 실행을 합니다.

일단 프로그램을 실행해보면 정확한 password input값을 요구를 하고 일단 테스트로 넣어둔 “inputtest”와 비교를 하였을 때 아니면 “No!”를 출력하는 모습을 볼 수가 있습니다.

이때 password 파일에 있는 값을 찾아 넣어 pwn2를 실행을 하면 flag값이 나온다는 것을 추측할 수가 있습니다.

일단 문제에서 pwn2 파일을 다운을 할 수가 있는데 파일을 다운해서 분석을 한번 해봅니다.

사용 도구는 kali의 리버싱 도구 edb를 사용했습니다.

일단 간단하게 보면 /home/woo/password 파일에 있는 password 값과 비교를 하여 정답을 출력하는 것으로 보입니다. 이때 kali에서 /home/woo/password 파일을 생성하고 1234를 넣어두고 프로그램을 실행해보겠습니다.

그 결과 예상하는 결과가 나오는데 여기서 문제는 flag가 깨져서 나온다는 것을 볼 수가 있습니다. 이때 password값이 정상적인 값이여야 여러가지 연산을 통해 flag값을 도출한다는 것을 파악할 수가 있습니다.

이제 다시 ssh로 돌아와 어떻게 하면 password의 파일의 내용을 pwn2가 읽어서 실행할 수 있는지 방법을 찾다가 리눅스의 리다이렉션을 생각하게 되었습니다.

“./pwn2 < password”를 통해 password 파일을 읽고 리다이렉션을 통해 pwn2 파일에 전달하여 입력 값으로 사용하게 하였습니다.

그 결과 생각 하던 결과대로 정상적으로 정답이 도출되었습니다.

 

Flag : SHADOW{!-!ouu_@b0ut_t!-!i$_pw//}

 

참고 포인트 :

리눅스 권한은 거짓말 안한다.!!

Comments