1.웹 셸 업로드 

게시판에서 웹 셸을 올리는데 php는 필터링이 되어 png파일 내부에 스크립트를 작성하여 업로드

확장자와 시그니처를 png로 하고 내부에 웹 셸 코드 작성

 

2. 파일 업로드 경로 찾기

경로는 파라미터가 "/사용자id/파일이름" 형태로 보이는데 두가지 케이스가 있을 듯

  1. 경로 그대로 사용
  2. back단에서 앞의 prefix를 추가하여 사용

위의 주석을보니 ./files/12 라는 것을 확인 files/12로 들어가보자

ps. 주석이 없다면 어떻게 찾아야하지?????

 -> 파일이 다운로드가 가능하다면 path traversal로 다운로드하는 소스를 확인 해보자 다운로드 소스에는 prefix를 찾을 수 있을 것이다.

빙고

3. 웹 셸 실행

업로드한 png 파일을 실행하기 위해 .htaccess 파일을 업로드 후 게시판에서 .htaccess를다운로드해보자.

정상적으로 업로드 확인 뒤 /files/12/shell.png를 접속해보

png가 실행되도록 세팅

 

다운로드 결과

 

 

정상적으로 웹셸을 확인

 

4. flag 찾기

"grep -r segfault{ ../"로 경로를 올라가며 플래그 찾기

여기서 끝내도 되지만 해당 index 파일을 다운받아보자.

"cp ../../index.php ./index.txt"로 해당 파일을 내 다운로드 디렉토리로 이동

게시판의 다운로드에서 파일명을 변경하여 다운로

grep 검색 결과

 

게시판의 다운로드 파일명을 index.txt로 변경

 

flag 확인

 

download.php를 받아보니 path traversal을 방지하기위해 "../" replace 하고 있었다.

'웹 해킹 코스 > 과제' 카테고리의 다른 글

16차 authorization 2(client 인증 우회)  (0) 2024.02.23
16차 authorization 1  (0) 2024.02.23
15차 CTF webshell3  (0) 2024.02.15
14차 문제풀이 Web Shell 2  (0) 2024.02.13
14차 문제풀이 Web Shell 1  (0) 2024.02.13

+ Recent posts