hahwul / assets.hahwul.com

assets for www.hahwul.com
https://assets.hahwul.com
21 stars 8 forks source link

2019/11/02/upgrade-self-xss-to-exploitable-xss/ #104

Closed utterances-bot closed 2 years ago

utterances-bot commented 2 years ago

Upgrade self XSS to Exploitable XSS an 3 Ways Technic

오늘은 Self-XSS를 유효한 XSS로 업그레이드 하는 방법 3가지에 대해 이야기 할까 합니다. Self XSS 공격자가 피해자인 XSS입니다. 즉 본인만 볼 수 있는 페이지의 XSS이며, 보통 버그바운티에선 영향없는건으로 리워드 대상이 아닙니다. 기업보안 입장에선 당연히 같이 체크해야하는 부분이구요. XSS Vulnerable to Only Me. Generally speaking, both attackers and victims are the same, i.e. XSS, which do

https://www.hahwul.com/2019/11/02/upgrade-self-xss-to-exploitable-xss/

inufaker14 commented 2 years ago

csrf와 xss 조합에서 로그인 방식을 쓰는 건 처음 봤습니다. 진짜 기발한 분들이 많네요

siriusbellatrix commented 2 years ago

포스팅을 봐도 무슨말인지 이해 못하는 저는 ㅠㅠ

hahwul commented 2 years ago

@siriusbellatrix 좀 더 간략하게 설명해보면 먼저 Self-XSS는 공격자 삽입한 XSS 코드가 타인이 아닌 본인에게만 보이는 XSS 입니다. 그래서 리스크가 당연히 낮은 상태구요. 글 작성 당시 3가지 방법을 공유드렸었는데요. 예를 들어서 설명드려볼게요.

A 사이트에선 내 주소 저장 기능에 Self-XSS(Stored)가 존재합니다. 내 주소는 나만 볼 수 있습니다.

  1. 내 주소 저장 기능에 CSRF 취약점이 같이 있는 경우 CSRF를 통해 타 사용자의 세션을 이용하여 주소를 저장할 수 있을텐데, 이 때 XSS 코드가 포함되는 주소를 저장하도록 작성합니다. 그러면 로그인한 사용자가 CSRF 코드에 접근하는 순간 본인의 세션을 이용하여 Self-XSS 공격 코드를 저장하게 됩니다. 결론적으론 타인을 대상으로 XSS 공격이 가능한 상태가 되죠.

  2. 서로 다른 세션을 사용하는 서브 도메인이 존재하는 경우 만약 A 사이트와 서브 도메인 관계인 B 사이트가 있다고 합시다. 다만 인증을 위한 세션은 다르게 사용합니다.

+ A: shop.a.com
+ B: pay.a.com
  1. 피해자가 자신의 계정에 XSS 코드를 삽입할 수 있도록 유도하는 방법입니다. 원리만 보면 피해자가 공격코드를 복사해서 자신의 주소 등록에 저장하는 형태입니다. 다만 누가봐도 의심스럽기 때문에 사용자를 낚을만한 요소를 만듭니다.

예를들면 주소검색 결과를 복사하여 붙여넣도록 유도하는데 사용자에겐 정상적인 주소 결과를 보여주지만 실제론 XSS 코드가 포함된 주소를 복사하도록 페이지를 만듭니다. (이러한 대표적인 기능이 블로그에서 복사 시 출저 정보가 강제로 남는 기능들이에요)

그러면 사용자가 자신도 모르게 XSS 코드를 주소로 저장하게 되고, 결과적으로 Self-XSS가 타인에게 영향을 끼치는 시나리오가 됩니다.

hahwul commented 2 years ago

@siriusbellatrix 예전에 쓴 글이라 표현이 좀 어렵긴 했네요 ㅜㅜ 혹시 어떤 부분이 이해가 어려우실까요? 제가 조금이나마 도움드릴 수 있길 바래봅니다 😊