Almon Dev

ctf 풀이 (Get Flag File) 본문

모의해킹/모의해킹

ctf 풀이 (Get Flag File)

Almon 2025. 2. 17. 03:29

Get Flag File

파일 업로드 취약점을 이용해서 플래그를 찾는 문제입니다.

 

 풀이

 

1. 로그인

(tester112 / 1234) 회원가입 후 로그인합니다.

 

2. 게시판에 접근

게시판에 접근하여 글쓰기 기능에 파일 업로드가 가능한 것을 확인했습니다.

 

3. 파일 업로드해 보기

정상적인 이미지 파일인 test.jpg를 업로드합니다.

 

4. 파일 다운로드 기능 확인

파일 다운로드 경로를 확인하면 download.php를 활용해서 다운로드하는 것을 볼 수 있습니다.

그리고 매개변수로 경로를 받고 있기 때문에 파일 다운로드 취약점으로 활용이 가능할 것 같습니다.

 

5. 파일 경로 확인

download.php의 경로를 이용해서 파일에 접근하려 하였으나 실패했습니다.

 

HTML 코드를 확인해 보니 주석으로 다운로드 파일의 경로가 나와있습니다.

=> 예전 기능을 삭제하기 않고 주석으로 남겨두어 파일의 경로가 노출

 

파일이 업로드되는 경로를 찾았습니다.

 

6. 악성 파일 업로드

php 파일 업로드에 실패했습니다. 경로가 변경되지 않고 경고창이 뜨는 것을 보면 JS를 이용한 확장자 검사인 것 같습니다.

 

Burp를 이용해 서버 응답을 가로채 JS를 수정하고 브라우저로 전송합니다. 

 

test.php를 업로드해 봅니다.

 

이번에는 경로가 변경되며 경고창이 나왔습니다. 그렇다면 이건 서버에서도 확장자를 검사하고 있는 것입니다.

php3~10, phtml과 같이 확장자를 변경하며 우회하려고 했으나 실패했습니다.

 

그러다 .htaccess가 업로드가 되는 것을 확인했습니다.

.htaccess 파일을 업로드해 아파치 서버의 설정을 덮어씌워 phP 파일이 php로 실행되도록 변경했습니다.

 

phP 확장자로 php 코드를 업로드하고 파일에 접근해 실행이 되는지 확인합니다.

 

7. 플래그 찾기

find 명령어로 flag.txt 파일을 찾고자 하였으나 실패했습니다.

빈 화면

 

flag.txt가 아니라면 아마 다른 파일의 내부에 flag가 담겨있을 가능성이 높습니다.

현재 경로를 파악하고 파일을 확인합니다.

 

폴더에 있는 파일을 하나하나 확인하며 플래그를 찾아도 되겠지만 매우 귀찮습니다....

grep 명령어를 이용해서 flag 단어가 포함되는 파일을 찾아보도록 하겠습니다.

 

바로 플래그를 찾았습니다. 내용을 확인해 보니 index.php의 주석으로 숨겨뒀습니다.

주석은 php 엔진이 무시해서 클라이언트로 전송되지 않기 때문에 소스코드를 직접 보지 않고서는 확인이 불가능합니다.

 

 마무리 (잡설)

전체적으로 https://almon.tistory.com/90와 거의 동일한 문제였습니다.

차이점은  flag.txt가 아니라 소스코드를 직접 확인해야 한다는 점이네요.

 

처음 이 문제를 풀 때 flag.txt가 없어서 많이 당황했습니다. 혹시 DB에 숨겨뒀나 해서 login.php에서 DB 계정/비밀번호를 알아내 sqldump로 가져오기도 하고, sudo 권한이 없어서 find에 실패하나 싶어서 suid 권한을 가진 파일을 찾아보기도 하고 했습니다 grep을 생각하지 못해 삽질을 많이 했네요

파일 다운로드 취약점을 공부할 때 소스코드를 실행하지 않고 다운로드하여 소스코드가 분석당할 위험이 있다는 이야기를 듣고 파일 업로드 취약점은 소스코드를 확인할 수 없다는 생각을 했습니다. 하지만 system 함수가 가능하다면 파일 업로드 취약점으로도 cp 같은 명령어를 이용해서 php 엔진이 실행하지 않도록 소스코드를 텍스트 파일로 변환한 뒤 텍스트로 파일에 접근해서 소스코드를 분석할 수 있을 것 같습니다.

'모의해킹 > 모의해킹' 카테고리의 다른 글

인증 / 인가 취약점 정리  (0) 2025.02.18
ctf 풀이 (Get Flag File 2)  (0) 2025.02.17
ctf 풀이 (WebShell 3)  (0) 2025.02.17
파일 업로드 / 다운로드 취약점 (feat. LFI)  (2) 2025.02.15
CSRF 정리 (feat. SOP/CORS)  (0) 2025.01.16