Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-65442-DOM-based-Cross-Site-Scripting-XSS-Vulnerability-in-novel-V3.5.0-CWE-79- — DOM-based Cross-Site Scripting (XSS) Vulnerability in novel V3.5.0 (CWE-79) | Kitploit
도구/GitHubGitHub/zero-day348/cve-2025-65442-dom-based-cross-site-scripting-xss-vulnerability-in-novel-v3.5.0-cwe-79-
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringWeb SecurityPenetration Testing
GitHubzero-day348/cve-2025-65442-dom-based-cross-site-scripting-xss-vulnerability-in-novel-v3.5.0-cwe-79-

CVE-2025-65442-DOM-based-Cross-Site-Scripting-XSS-Vulnerability-in-novel-V3.5.0-CWE-79-

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

DOM-based Cross-Site Scripting (XSS) Vulnerability in novel V3.5.0 (CWE-79)

저장소 보기
7개월 전아직 검토되지 않음

대상:http://117.72.165.13:8888/

Github:https://github.com/201206030/novel

버전:V3.5.0

취약점 이름: novel V3.5.0의 DOM 기반 크로스 사이트 스크립팅(XSS) 취약점 (CWE-79)

취약점 유형: DOM 기반 크로스 사이트 스크립팅 (DOM-based XSS)

발견 날짜: 2025-11-02

취약점 세부 정보:

novel (V3.5.0)은 Spring Boot 3 + Vue 3 기반의 소설 읽기 플랫폼으로, 책 댓글 모듈에 DOM 기반 XSS 취약점이 있습니다. 이 결함은 사용자가 제출한 댓글 내용에 대한 부적절한 검증/인코딩에서 발생합니다: 백엔드: BookComment 엔티티/DTO의 commentContent 필드는 악성 HTML/JS 코드를 필터링하지 않고 데이터베이스에 저장되고 API를 통해 반환됩니다. 프론트엔드: 플랫폼은 인코딩되지 않은 댓글을 가져와 window.localStorage (키: book_comment_{bookId})에 저장하고, Vue 3의 v-html (살균 처리 없음)을 통해 데이터를 DOM에 직접 렌더링합니다. 공격자는 (로그인 후) 악성 댓글을 제출하고, 사용자가 영향을 받는 페이지에 접속하도록 유도하여 세션 쿠키를 탈취하거나, 신원을 도용하거나, 페이지 내용을 변조하는 코드 실행을 트리거할 수 있습니다.

기술 세부 정보 및 개념 증명 (PoC):

전제 조건:

대상 버전: novel V3.5.0 환경: Chrome/Firefox, 합법적인 사용자 계정 (로그인 필요) 영향 받는 URL: 소설 상세 페이지 (http://117.72.165.13:8888/book/detail.html?id={bookId}) 및 댓글 목록 페이지 (http://117.72.165.13:8888/book/comment-{bookId}.html)

취약점 트리거 지점:

취약점은 책 댓글 모듈 (핵심 비즈니스 로직)에서 트리거됩니다: 백엔드: BookComment 엔티티/DTO의 commentContent 필드는 book_comment 데이터베이스 테이블에 저장되고, 댓글 목록 API (/api/book/comment/list?bookId={bookId})를 통해 악성 HTML/JS 코드를 필터링하지 않고 반환됩니다. 프론트엔드: 페이지는 API에서 인코딩되지 않은 댓글 내용을 가져와 window.localStorage (키: book_comment_{bookId}, 예: book ID 37의 경우 book_comment_37)에 저장하고, Vue 3의 v-html 디렉티브 ( <li class="dec"> 태그에 삽입)를 통해 살균 처리 없이 DOM에 직접 렌더링합니다.

예시 공격 페이로드:
다음 페이로드는 취약점의 존재를 확인할 수 있습니다:
1.URL 매개변수를 통해 window.localStorage에 악성 코드 저장
root@kitploit:~
http://117.72.165.13:8888/book/1935650139770011648/1984484631582167040.html?switch=on&wvstest=<svg onload="alert('DOM-XSS-Test')">

(페이지는 wvstest 매개변수의 값을 window.localStorage에 저장합니다)

2.프론트엔드 스크립트를 통해 window.localStorage에 악성 데이터 직접 주입
root@kitploit:~
localStorage.setItem('book_comment_37', '');
image image

재현 단계:

1.시스템에 로그인:

http://117.72.165.13:8888/user/login.html에 접속하여 합법적인 계정으로 로그인하고 소설 상세 페이지로 이동합니다.

2.악성 댓글 제출:

페이지에서 댓글 텍스트 영역 (id="txtComment")을 찾아 악성 페이로드 ()를 입력합니다. "제출" 버튼을 클릭하여 BookDetail.SaveComment(37, 0, payload) 메서드를 트리거합니다 (37은 bookId).

3.localStorage 저장 트리거:

소설 상세 페이지를 새로 고칩니다. 프론트엔드가 /api/book/comment/list?bookId=37을 호출하여 악성 댓글을 가져오고 window.localStorage (키: book_comment_37)에 저장합니다.

4.XSS 실행 확인:

페이지에서 사용자의 세션 쿠키를 표시하는 팝업 창이 나타나는지 관찰합니다 (악성 코드 실행 확인). F12를 눌러 개발자 도구를 열고 「Elements」 패널로 전환한 후 DOM 구조에서 를 검색합니다 (

  • 태그에 페이로드가 삽입되었는지 확인). 5 6

    제보자 정보

    이름/조직: 리솽 (li shuang)
    연락처: [email protected]
  • 도구 다운로드