XSS를 이용하여 cookie 정보 탈취 가능

Writer 4661ee9c Program 엔큐리티

WEB Resolved Medium No Reward Created: Oct 16, 2021 (2 years ago) Last Updated: Jan 3, 2022 (2 years ago)

Weakness

XSS를 이용하여 cookie 정보 탈취 가능

Description

개요

XSS(Cross-Site Scripting) 이란 웹 애플리케이션에서 일어나는 취약점으로 관리자가 아닌 권한이 없는 사용자가 웹 사이트에 스크립트를 삽입하는 공격 기법입니다.
이러한 공격 기법을 통해 악의적인 사용자가 C&C 서버로 리다이렉션 하기 위해 리다이렉션 스크립트를 주입하여 중간 경유지로 활용하기도 하고,
사용자의 쿠키를 탈취하여 세션 하이재킹(Session Hijacking) 공격을 진행 하므로 반드시 보안 되어야 할 취약점 입니다.

재현 과정

[취약점 재현을 하기 위한 과정을 서술해 주세요]

  1. [step1]
    COMPANY -> NOTICE 메뉴에서 게시물 검색할때 s_txt 파라미터 값에 스크립트 구문 삽입
    Description
  2. [step2]
    Description

예상되는 취약점 발생 원인

사용자 입력값 검증 미흡으로 인한 취약점 발생

패치 방법

출력 값을 무효화하기 위해서는 XSS 공격은 기본적으로 <script> 태그를 사용하기 때문에 XSS
공격을 차단하기 위해 태그 문자(<, >) 등 위험한 문자 입력 시 문자 참조(HTML entity)로
필터링하고, 서버에서 브라우저로 전송 시 문자를 인코딩하는 것이다. HTML 문자 참조란 ASCII
문자10)를 동일한 의미의 HTML 문자로 변경하는 과정이다. 예를 들어, 문자 “<”는 동일한 의미의
HTML “<”로 변경한다. HTML 엔터티는 대부분의 인터프리터(특히, 브라우저)에서 특수한
의미를 가지지 않으며, 단순한 문자로 처리된다. 이렇게 인코딩하면 사용자는 <script>가

<script>로 보이지만 HTML 문서에서는 <script>로 나타나서 브라우저에서 일반 문자로 인식하고 스크립트로 해석되어 실행되지는 않는다 ## 예상 결과 및 파급력 1. http://www.ncurity.com/sub/1_6.php?s_txt=bugcamp%22%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E -> ncurity 홈페이지에 접속할려는 일반 사용자들이 www.ncurity.com 주소만 확인 후 신뢰 할 수 있는 페이지라 생각하고 접속 -> s_txt 파라미터 취약점으로 인해 일반 사용자들의 cookie 값 흭득 및 공격자의 악성 사이트로 접속 가능 등 다양한 취약점 발생 ## 기타사항 및 레퍼런스 [그 외에 추가할 내용이 있다면 이곳에 작성해주세요.(스크린샷, 로그 등)] * [첨부파일 / 레퍼런스]

Timeline

4661ee9c submitted ticket. October 16, 2021 (2 years ago)
Dona BUGCAMP STAFF changed the status from 'Submitted' to 'In Progress'. November 11, 2021 (2 years ago)
Steve BUGCAMP STAFF posted a comment. November 12, 2021 (2 years ago)

안녕하세요. 제보자님
엔큐리티 버그바운티 프로그램에 제보해주셔서 감사합니다.

제출해주신 티켓은 유효한 티켓으로 Reflected XSS 취약점이 발현되는 것을 확인하였습니다. 해당 티켓은 담당자에게 전달될 예정이며, 담당자 업무 일정으로 인해 패치가 지연될 수 있는점 참고부탁드립니다.

감사합니다.

Steve BUGCAMP STAFF changed the status from 'In Progress' to 'Resolved'. January 3, 2022 (2 years ago)

안녕하십니까 제보자님, 제출해주신 취약점이 패치되었습니다.
엔큐리티 버그바운티 프로그램에 참여해주셔서 감사합니다.

Steve BUGCAMP STAFF changed the disclosure from 'Closed' to 'Disclosed (Full)'. January 3, 2022 (2 years ago)