
웹사이트 ecodotempo.com.br을 분석하는 과정에서 저장형 크로스사이트 스크립팅(Stored Cross-Site Scripting, XSS) 취약점이 발견되었습니다. 이 취약점은 공격자가 추후 다른 사용자에게 적절한 무결화(sanitization) 없이 렌더링되는 필드에 악성 스크립트를 주입할 수 있게 하며, 특히 인증되지 않은(로그아웃된) 영역의 메인 페이지에서 발생합니다.
ecodotempo.com.br 웹사이트를 분석하는 과정에서 저장형 크로스사이트 스크립팅(XSS) 취약점이 발견되었습니다. 이 취약점으로 인해 공격자는 적절한 살균 처리가 이루어지지 않은 채 나중에 다른 사용자에게 렌더링되는 필드에 악성 스크립트를 주입할 수 있으며, 특히 인증되지 않은(로그아웃된) 영역의 메인 페이지에 영향을 미칩니다.
ecodotempo.com.br/colecoes/cadastrar_realizar.php
name="nome" 및 name="descricao"
ecodotempo.com.br 웹사이트를 분석하는 과정에서 저장형 크로스사이트 스크립팅(XSS) 취약점이 발견되었습니다. 이 취약점으로 인해 공격자는 적절한 살균 처리가 이루어지지 않은 채 나중에 다른 사용자에게 렌더링되는 필드에 악성 스크립트를 주입할 수 있으며, 특히 인증되지 않은(로그아웃된) 영역의 메인 페이지에 영향을 미칩니다.
주입된 스크립트는 애플리케이션 백엔드에 지속적으로 저장되었으며, 영향을 받는 페이지에 접속한 모든 방문자의 브라우저에서 실행되었습니다. 이때 이스케이프 메커니즘이나 콘텐츠 보안 정책(CSP)을 통한 보호 조치는 적용되어 있지 않았습니다.
ecodotempo.com.br에서 테스트하는 동안 저장형 XSS 취약점은 특히 항목 컬렉션 생성 과정에서 확인되었습니다. 컬렉션의 이름 또는 설명 필드에 악성 페이로드를 주입하는 것이 가능했으며, 입력 검증, 코드 수준 필터, 웹 애플리케이션 방화벽(WAF), 보안 HTTP 헤더와 같은 적용 중인 완화 메커니즘은 존재하지 않았습니다.
악성 스크립트가 포함된 컬렉션을 생성한 후 로그아웃하고 다시 메인 로그인 페이지에 접속하자 페이로드가 브라우저에서 자동으로 실행되어 팝업이 표시되었습니다. 테스트에서는 이를 통해 쿠키 추출을 시연했습니다. 이러한 동작은 적절한 살균 처리가 이루어지지 않았음을 확인해 주며, 피해자 브라우저 컨텍스트 내에서 임의의 스크립트가 실제로 실행될 수 있음을 보여줍니다. 예시는 아래 증거 섹션을 참조하십시오.

참고: 쿠키 탈취 외에도 이 취약점은 사용자를 유해 웹사이트로 리디렉션하거나, 민감한 데이터를 외부로 유출하거나, 피싱 공격을 위해 페이지 콘텐츠를 변조하거나, 사용자를 대신해 작업을 실행하는 등 다양한 악의적 목적으로 악용될 수 있습니다(영향 섹션에서 앞서 설명한 바와 같습니다).
ecodotempo.com.br의 비인증 영역 메인 페이지에 저장형 XSS 취약점이 존재한다는 것은 심각한 보안 위험을 초래합니다. 주입된 스크립트가 영구적으로 저장되어 영향을 받는 페이지에 접속하는 모든 사용자에게 제공되므로, 다양한 클라이언트 측 공격의 가능성이 열리게 됩니다. 공격자는 이 결함을 악용하여 의심하지 않는 방문자의 브라우저에서 임의의 JavaScript를 실행하고, 세션 쿠키를 탈취하거나, 사용자를 악성 웹사이트로 리디렉션하거나, 사용자 동의 없이 사용자를 대신해 작업을 수행하거나, 피싱 시도를 위해 페이지 콘텐츠를 조작할 수 있습니다. 이 취약점이 공개적으로 접근 가능한 영역에 노출되어 있기 때문에, 특히 자동화된 봇이나 표적 캠페인을 통한 대규모 악용 가능성이 높아지며, 잠재적으로 사용자 신뢰와 플랫폼의 무결성이 훼손될 수 있습니다.
ecodotempo.com.br의 비인증 영역 메인 페이지에서 발견된 저장형 XSS 취약점을 해결하려면 다음 조치를 수행해야 합니다.
모든 사용자 입력은 저장되거나 렌더링되기 전에 클라이언트 측과 서버 측 모두에서 적절히 살균되고 검증되어야 합니다. 특히 HTML 컨텍스트에서 표시될 입력값은 <, >, ", ', & 와 같은 특수 문자가 인코딩되어 스크립트 실행을 방지해야 합니다. 또한 애플리케이션은 데이터가 주입되는 컨텍스트(HTML, JavaScript, 속성, URL 등)에 따라 출력 인코딩을 구현해야 합니다.
또한 승인되지 않은 스크립트의 실행을 제한하기 위해 콘텐츠 보안 정책(CSP)을 적용하고, 인라인 스크립트와 신뢰할 수 없는 출처의 외부 스크립트 로드를 비활성화할 것을 강력히 권장합니다. 정기적인 코드 리뷰와 자동화된 보안 테스트(예: OWASP ZAP 또는 Burp Suite와 같은 도구 사용)를 개발 수명 주기에 통합하여 향후 유사한 결함을 탐지하고 방지해야 합니다.
마지막으로, 이미 저장된 악성 페이로드를 식별하여 시스템에서 제거함으로써 기존 위험을 제거해야 합니다.