Bugbounty) 사례 분석 XSS-2)
WEBHACKING/web

Bugbounty) 사례 분석 XSS-2)

1) Yahoo Mail : 10000$..

https://klikki.fi/adv/yahoo2.html

 

Yahoo Mail stored XSS #2

Yahoo Mail stored XSS #2 Dec 08, 2016 A security vulnerability in Yahoo Mail was fixed last week. The flaw allowed an attacker to read a victim's email or create a virus infecting Yahoo Mail accounts, among other things. The attack required the victim to v

klikki.fi

: 야후 메일에는 "share files from cloud providers" 라는 옵션이 있고, 여기에 전형적인 파일 형식을 첨부하는 것이 아니라, html 링크를 넣는 것이 가능했다.

 

여기서 data-* 옵션들을 자세히 살펴보면 각종 url, datatype, data category등을 집어 넣을 수 있다.

 

이를 조작해서 랜덤한 피해자에게 메일을 보내 iframe injection 하는게 가능해진다.

또한, img 태그를 첨부해서 xss를 alert하는 것도 가능하다. 여러 variation의 공격이 가능하다.

From: <attacker@attacker.com>
Subject: hello
To: victim@yahoo.com
MIME-Version: 1.0
Content-type: text/html

<div class="yahoo-link-enhancr-card" data-url="https://www.youtube.com/aaa&quot;&gt;&lt;img src=x onerror=alert(/xss/)&gt;&lt;">
<div class="card-share-container">
<a class="enhancr-play-btn"></a>
</div></div>

=> 이 공격은 js와 html를 기반해서 이루어지는 공격으로 보인다. 쓸모없는 html 태그를 잘 필터링하는 것으로 대응이 가능 할 것 같다. url도 검사가 잘 되어야 할것 같다.

 

 

2) SnapChat XSS

https://medium.com/@mrityunjoy/stored-xss-on-snapchat-5d704131d8fd

 

Stored XSS on Snapchat

Hello Guyz, This is @Mrityunjoy . A Bug Bounty Hunter from Bangladesh. Today I want to share with you a Stored XSS which I found in…

medium.com

 

=> 상대적으로 쉬운 stored xss 공격이다. 필자는 정보 입력칸에 하나식 html 코드를 넣어보다가 Business name field가 취약하다는걸 알게 되었다고 한다.

' test"><img src=x onerror=prompt<domain)>' 이러한 간단한 payload를 집어 넣었더니

 

prompt 창이 실행되면서 입력을 받을 수 있는 xss 공격이 실행되었다고 한다.

이런 간단한 공격으로 2000$.. 꿈의 xss인 것 같다.

 

 

3) UBER XSS

https://httpsonly.blogspot.com/2016/08/turning-self-xss-into-good-xss-v2.html 

 

Turning Self-XSS into Good XSS v2: Challenge Completed but Not Rewarded

This appears to be the issue which I was digging for the most time during my bugbounty experience, it took more than two months to find a p...

httpsonly.blogspot.com

 => 이 xss는 두가지의 out of scope xss를 엮어서 하나의 바운티로 인정 받은게 흥미로워서 가져와봤다.

 

1) self-stored xss를 실행한다.

 : 여기서 필자는  login 페이지를 이용해서 로그인하면 xss가 실행되는 방법을 사용했지만, 좀더 흥미로웠던 것은 invitation 코드를 이용해서 exploit하는 것이었다.

  https://hackerone.com/reports/134124

 

Uber disclosed on HackerOne: Stored self-XSS at m.uber.com

There is a stored self-XSS vulnerability at m.uber.com in displaying the uber invite code. If the user sets the invite code at ` ` value using the main personal area at the uber.com and then signs into the m.uber.com t

hackerone.com

 -> 위 필자는 초대 코드가 xss공격이 먹힌다는 사실을 확인하고, eval과 atob 메소드를 이용해서 <script>alert(document.domain)</script> 공격 코드를 감추는 식으로 xss공격이 가능하다는 것을 찾았지만 인정되지 않았다고 한다.

 

2) 그다음 인조적으로 쿠키를 굽는 게 가능하다는 것이다.

 : 서브 도메인에서 취약한 부분을 찾아서 reflected xss를 통해 인조적으로 쿠키를 하나 만들었다고 한다.

  "https://business.uber.com/new/confirm/test;,arbitrary=cookie;domain=.uber.com" 이러한 방식으로 쿠키가 하나 구워졌으면, 이 쿠키를 통해 중요한 ouath2 쿠키를 탈취할 수 있다.

 

3) 이 두 취약점을 결합하여 victim이 로그인을 하게 될 시에 즉시 xss가 시행되어 미리 만들어 놓은 쿠키에 사용자의 쿠키가 저장되는 식으로 새로운 방식의 xss를 인정받아서 1000$의 바운티를 받았다고 한다. (POC는 위 링크에서 확인 가능)

  

=> 요즘 단순히 stored xss는 인정되지 않는 경우도 많아서 다른 취약점으로 결합시키는 것도 좋은 방법인 것 같다.