[SK쉴더스 Rookies 19기] 클라우드 기반 스마트 융합보안 과정
Lab: Remote code execution via web shell upload | Web Security Academy
This lab contains a vulnerable image upload function. It doesn't perform any validation on the files users upload before storing them on the server's ...
portswigger.net
가. 문제점
[CASE 7] File Upload
Web Security Academy 서비스 내 일부 페이지에서 업로드 파일 값에 대한 필터링 검증이 부재하여 Avatar 기능 이용/사용 시 악성 스크립트 삽입 및 실행이 가능하며 이로 인해 타사용자의 인증정보 획득 및 악성 코드 유포 가능성이 존재합니다.
<?php
echo file_get_contents('/home/carlos/secret');
?>
/home/carlos/secret 을 읽어오기 위한 스크립트를 작성한다.
나. 관련 URL
번호 | 경로 | URL |
1 | Login > My account | /my-account/avatar |
2 | /files/avatars |
다. 해결 방안
업로드하는 파일 타입과 크기를 제한하고 업로드 디렉터리를 웹서버의 document 외부에 설정해야 합니다. 화이트리스트 방식으로 허용된 확장자만 업로드 되도록 하고, 확장자도 대소문자 구분 없이 검증할 수 있게 구성해야 합니다. 업로드되는 파일 경로 및 파일명에는 “../”, ”;”, ”%0” 등과 같은 특수문자도 제한해야 합니다.