1.웹 셸 업로드
게시판에서 웹 셸을 올리는데 php는 필터링이 되어 png파일 내부에 스크립트를 작성하여 업로드
2. 파일 업로드 경로 찾기
경로는 파라미터가 "/사용자id/파일이름" 형태로 보이는데 두가지 케이스가 있을 듯
- 경로 그대로 사용
- back단에서 앞의 prefix를 추가하여 사용
위의 주석을보니 ./files/12 라는 것을 확인 files/12로 들어가보자
ps. 주석이 없다면 어떻게 찾아야하지?????
-> 파일이 다운로드가 가능하다면 path traversal로 다운로드하는 소스를 확인 해보자 다운로드 소스에는 prefix를 찾을 수 있을 것이다.
3. 웹 셸 실행
업로드한 png 파일을 실행하기 위해 .htaccess 파일을 업로드 후 게시판에서 .htaccess를다운로드해보자.
정상적으로 업로드 확인 뒤 /files/12/shell.png를 접속해보
4. flag 찾기
"grep -r segfault{ ../"로 경로를 올라가며 플래그 찾기
여기서 끝내도 되지만 해당 index 파일을 다운받아보자.
"cp ../../index.php ./index.txt"로 해당 파일을 내 다운로드 디렉토리로 이동
게시판의 다운로드에서 파일명을 변경하여 다운로
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 |