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를 챙겨가세요!