minhui study
[SWING 내부 CTF] DO_it!!! FYJAIL? 본문
문제의 힌트는 Pyjail Challenge이다. 리눅스에 nc ctf.no-named.kr 9009를 입력하면 다음과 같이 나온다.
일부러 오류가 나도록 이것저것 쳐보니 다음과 같은 오류가 나왔고 오류 내용에서 이 실행 파일은 pyjail.py이라는 것과 그 파일의 위치가 /home/pyjail/pyjail/이라는 것을 알 수 있었다.
또한 오류 내용을 보니 사용자가 입력한 내용이 eval함수로 들어가는 듯 보였다. 파이썬에서 eval()함수는 받은 해당 표현식을 그대로 실행하는 취약점이 있기 때문에 __import__(‘os’).system(‘ls’)와 같은 쉘 명령을 실행시킬 수 있는 명령어를 입력했을 때 다음과 같이 해당 서버의 디렉토리 목록이 출력되는 것을 확인할 수 있었다.
이를 이용하여 /home/pyjail/pyjail/pyjail.py의 코드를 확인해보자
역시 다음과 같이 입력한 내용이 eval()함수에 들어간다는 걸 확인할 수 있고, 여기서 이 코드로는 플래그를 얻을 수 없으므로 서버 내 디렉토리에 있는 파일들이 뭐가 있는지 확인해보았더니 /home/pyjail/pyjail/안에 플래그 파일이 있었다.
그리고 그 파일을 열어보니 플래그가 있었다.
출제: N0Named 해킹팀
Comments