Web Shell 1
파일 업로드 취약점이 있는 게시판에서 파일을 업로드 하여 웹 쉘을 획득하고, 플래그를 찾는 문제이다.
로그인 후, 게시판에 접속하여 드래그를 통해 파일을 업로드 해주었다.
게시판 페이지 아래 부분에 Download라는 항목으로 파일 업로드가 된 것을 확인하였다.
Download에서 우클릭 후 "링크 주소 복사"를 하였다.
<복사된 링크>
파일 경로를 획득하였기 때문에 주소창에 그대로 복사하여 접속하였다.
코드 내용이 뜨지 않고 빈 페이지를 화면에서 출력하였다.
코드가 WAS(Web Application Server)에서 실행되었다고 판단하고 그대로 Burp Suite을 확인하였다.
Burp Suite - Repeater에서 확인해본 결과, 명령이 정상적으로 실행되는 것을 확인할 수 있었다.
(오른쪽 여러 파일은 푼 흔적들..)
명령어를 입력하여 여러 디렉토리를 확인해본 결과 flag.txt 파일이 들어있는 디렉토리를 확인하였다.
앞의 ls -al 명령어를 cat으로 바꾸어 flag.txt 파일을 읽어 flag를 획득하였다.
Web Shell 2
Web Shell 1 문제와 동일하게 파일 업로드 취약점을 이용하여 웹 쉘을 탈취하는 문제이다.
로그인 후, 게시판에서 파일 업로드를 바로 진행하였다.
php 확장자는 업로드 할 수 없다고 오류 메세지가 떴다.
이번에는 확장자를 php, phtml 과 같은 형식으로 우회하여 업로드를 진행해보았다.
![]() |
![]() |
![]() |
![]() |
두 방식 모두 우회가 되지 않았다.
phtml 확장자는 막혀있었고, pHP, phP 등 대소문자 필터링이 적용되어 있었다.
업로드가 정상적으로 이루어져야 Burp Suite를 통해 요청 패킷을 수정할 수 있으므로 일단 임의의 파일을 업로드 하였다.
임의의 test.png 파일을 업로드 하였고, 게시물을 작성하였다.
정상적으로 글이 업로드 된 것을 확인하였다.
이제 Burp Suite를 통해 파일 업로드 코드 중 일부를 수정하여 webshell.php 파일이 업로드 되도록 진행하려고 한다.
![]() |
![]() |
파일 업로드 요청이 있는 부분을 찾고, Web Shell 1 문제의 요청 패킷을 그대로 가져와서 Content-Type을 text/php로 변경해주었다.
그대로 서버에 요청을 보냈고 결과를 확인했다.
<script> 태그로 alert('업로드 될 수 없는 파일이 탐지되었습니다. webshell.php'); 라는 문구가 뜨지만 정상적으로 글 작성에 성공하고 게시판 리스트 화면으로 돌아가는 것을 확인할 수 있었다.
게시판 화면에서는 글이 정상적으로 작성이 되었다.
그러나 게시판을 열어서 파일이 업로드 되었는지 확인해본 결과, download 부분이 없는 것을 확인했다.
파일이 정확하게 업로드 되었는지 확인할 수 없었고, 이전에 test.png 이미지를 올린 경로를 통해 한번 접속해보기로 했다.
위의 url에서 test.png를 제거하여 페이지를 로드하였고, 아래 화면을 볼 수 있었다.
방금 올린 webshell.php 파일이 정상적으로 업로드 된 것을 확인하였다.
다시 Burp Suite를 열어 웹 쉘에 명령어를 입력하였다.
ls-al 명령어를 통해 flag가 있는 경로를 찾고 cat 명령어를 입력하여 flag 파일을 읽을 수 있었다.
'모의해킹 스터디 > Week14' 카테고리의 다른 글
파일 업로드 검사 우회 방법 (0) | 2024.07.22 |
---|---|
파일 업로드(File Upload) 공격 (0) | 2024.07.21 |