[모의해킹 스터디] CTF - Web Shell 2

바울·2025년 2월 12일
0

모의해킹 스터디

목록 보기
40/40

문제

해당 문제를 보면 알 수 있듯이 file upload 취약점을 찾아 web shell을 이용 flag를 찾아내는 문제이다.


풀이

회원가입 후 로그인 시도

file upload 취약점을 찾기 위해 게시판 접속

게시판 접속 후 글 작성 페이지로 이동

file upload를 위해 파일 선택 클릭

미리 작성해둔 webshell을 업로드하려고 했으나 php 파일 자체를 업로드할 수 없는 상태이다.

해당 페이지에 소스코드를 살펴보면 허용된 값만 업로드할 수 있게 화이트리스트 기반 필터링이 적용되어 있는 걸 볼 수 있다.

php 파일을 우회하여 업로드하기 위해 업로드가 가능한 jpg 파일을 업로드한 후

burp suite를 이용해 파일이 업로드되기 전 확장자, Content-Type 및 파일 안에 one line web shell을 작성하여 php 파일을 업로드하게 되면

당연하게도 php 파일은 필터링이 되기 때문에 에러가 나온다..

일단 파일이 업로드되는 경로를 찾기 위해 업로드 가능한 파일을 업로드한 후 경로를 살펴보면 webshell_2/files/bawool 폴더에 저장되는 걸 확인할 수 있다. 해당 경로에 접속해 보면

Directory Listing 취약점이 있어 해당 폴더 안에 파일을 볼 수 있는데 아까 업로드 시 에러가 났던 php 파일이 있는 걸 볼 수 있다. 이렇게 업로드 시 에러가 나서 업로드가 되지 않은 거처럼 보이지만 실제로는 파일이 서버에 저장되어 있는 경우가 종종 있다.

webshell_2/files/bawool/webshell.php?cmd=find%20/%20-name%20flag.txt

업로드한 web shell 코드에 파라미터인 cmd에 find 명령어를 입력하여 flag.txt 파일을 찾아보면 해당 파일에 경로가 나온다.

webshell_2/files/bawool/webshell.php?cmd=cat%20/app/webshell_2/secret_file/flag.txt

cat 명령어를 사용하여 flag.txt 파일의 내용을 확인해 보면 flag를 확인할 수 있다!

0개의 댓글