# SS-Leaks
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* サイバーセキュリティ会社で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
これは**dangling markupとXS-Leaksのミックス**です。一方で、この脆弱性では、攻撃対象となるページと**同じオリジン**のページにHTML(JSではない)を**注入**することができます。他方で、HTMLを注入できるページそのものを**直接攻撃**するのではなく、**別のページ**を攻撃します。
## ネストされたオブジェクト
`/api/v1/leaky?secret=a`エンドポイントが404ステータスコードを返す場合、内部の`object`がロードされ、`https://evil.com?callback=a`にコールバックが行われ、検索クエリ`a`が結果を返さなかったことがわかります。
```html
```
### レイジーローディング
もしCSPが外部オブジェクトをブロックした場合はどうなるでしょうか?次のCSPを試してみましょう:
`Content-Security-Policy: default-src 'self'; img-src *;`
先ほどのコールバック`object`はもはや機能しません。その代わりに、画像の[レイジーローディング](https://developer.mozilla.org/ja/docs/Web/Performance/Lazy_loading)を使用することができます!次の画像は、表示されており、ビューポートから一定の距離内にある場合にのみロードされます。
```html
```
### レスポンシブ画像
上記のテクニックは素晴らしいですが、HTMLのインジェクションがユーザーのビューポート内にあることを前提としています。
もしインジェクションが画面外にあり、ユーザーがスクロールしない場合でも、データを漏洩させることはできますか? もちろん、要素のIDと[scroll-to-text-fragment](https://chromestatus.com/feature/4733392803332096)を使用して、スクロールを強制するURLを作成することはできますが、これらはユーザーの操作に依存しており、実世界のシナリオで一貫した漏洩を実現することはできません。理想的には、保存されたHTMLインジェクションを信頼性のある方法で武器化したいのです。
それがレスポンシブ画像です!具体的には、画像の`srcset`と`sizes`属性です。
{% code overflow="wrap" %}
```html
```
{% endcode %}
ここで解説するべきことがいくつかあります。まず、リークするエンドポイントが404ステータスコードを返す場合にのみ、内部のiframeが表示されることを覚えておいてください。
これは重要です。なぜなら、今度は条件付きでiframe内の画像を2つの異なるURLから読み込むようにします。`sizes`属性を使用して、ビューポートのサイズに応じてどのURLから画像を読み込むかを選択するために、[メディアクエリ](https://developer.mozilla.org/ja/docs/Web/CSS/CSS\_media\_queries/Using\_media\_queries)を使用できます。
{% code overflow="wrap" %}
```html
```
{% endcode %}
私たちのiframeには `width="1000px"` があるため、次のことが起こります:
1. もしリークするエンドポイントが404ステータスコードを返す場合、iframeが表示され、幅が1000pxになります。iframe内の画像は `(min-width: 1000px)` メディアクエリに一致し、`https://evil.com?callback=0` から800pxの画像を読み込みます。
2. もしリークするエンドポイントが200ステータスコードを返す場合、iframeは表示されません。画像は大きなiframeの一部としてレンダリングされていないため、`(max-width 999px)` メディアクエリに一致し、`https://evil.com?callback=1` から480pxの画像を読み込みます。
## 参考文献
* [https://infosec.zeyu2001.com/2023/from-xs-leaks-to-ss-leaks](https://infosec.zeyu2001.com/2023/from-xs-leaks-to-ss-leaks)
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください、私たちの独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で私を**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **ハッキングのトリックを共有するために、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**