이 영역을 누르면 첫 페이지로 이동
Sanineng 블로그의 첫 페이지로 이동

Sanineng

페이지 맨 위로 올라가기

Sanineng

Sanineng Security Blog

a tag target=_blank XSS

  • 2024.04.28 19:13
  • BugBounty

A tag 와 javascript scheme

A tag는 html에서 사진, 동영상 등 파일을 다운로드하거나, 다른 URL에 연결시켜주는 역할로 웹 페이지에서 많이 사용됩니다.

버그바운티 활동에서 XSS 취약점을 테스트 할때 a 태그의 href에 임의의 값을 넣을 수 있다면, javascript scheme을 사용해서 XSS를 시도하게 됩니다.



A tag의 target=_blank 옵션이란?

A tag에서 target 속성은 링크를 클릭했을 때, 열리는 방식을 명시하는 역할을 합니다.

주로 사용되는 target 속성값으로는 다음과 같습니다.

_self (현재 지점, 기본값), _blank (새 창), _parent (상위 프레임), _top (창 전체)

A tag의 target=_blank 옵션이 있을때 XSS?

a tag의 href 값을 임의로 조작할 수 있지만, html escape 등의 이유로 href 값 이외에는 조작할 수 없는 경우가 발생할 수 있습니다.

이때 a tag의 target 속성에 _blank 속성값이 지정되어 있다면 javascript scheme를 href에 지정해도 일반적인 좌클릭으로는 XSS가 발생하지 않습니다.

(좌클릭을 했을때 blank 페이지가 새로 열릴뿐, alert가 실행되지 않는 모습)


이러한 동작을 보고 XSS가 불가능 하다고 생각해 포기하는 경우가 일어날 수 있지만,

일반적인 좌클릭이 아닌, Crtl + 좌클릭, 휠 클릭, Shift + 좌클릭, Alt + 좌클릭 으로 해당 링크를 클릭했을때, XSS가 발생하는 것을 확인할 수 있습니다.

( FireFox는 같은 창이 아닌, 빈 탭에서 xss가 발생하므로 쿠키 탈취 등이 불가능 합니다 )

좌클릭 ( Chrome, Edge )



Crtl + 좌클릭 ( Chrome, Edge )


물론 Chrome, Edge 브라우저에서만 가능하다는 점과 사용자의 상호작용이 더 필요한 만큼 bounty가 감소할 수는 있지만, 이러한 부분을 잘 설명하여 전달한다면 XSS로 인정받을 수 있을것으로 생각됩니다.

저도 target=_blank 때문에 일반적인 좌클릭으로는 XSS가 발생하지 않으나 Crtl + 좌클릭, 휠클릭 등으로 XSS가 발생하는 POC를 보여주어 bounty를 받았습니다.

여러분들도 target=_blank 때문에 XSS가 불가능 해보이는 경우가 발생한다면 위의 경우를 잘 설명하여 bounty를 챙겨가세요!

Reference

The curious case of XSS and the mouse middle button

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

다른 글 더 둘러보기

정보

Sanineng 블로그의 첫 페이지로 이동

Sanineng

  • Sanineng의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (2)
    • BugBounty (1)
    • Security (1)

최근 글

인기 글

댓글

공지사항

아카이브

태그

나의 외부 링크

정보

Sanineng의 Sanineng

Sanineng

Sanineng

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © Sanineng. Designed by Fraccino.

티스토리툴바