# Connection Pool Examples
{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
## Sekaictf2022 - safelist
W wyzwaniu [**Sekaictf2022 - safelist**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/safelist/solution), [**@Strellic\_**](https://twitter.com/Strellic\_) podaje przykład, jak użyć **wariacji** techniki **Connection Pool**, aby przeprowadzić **XS-Leak**.
W tym wyzwaniu celem jest wykradzenie flagi, która pojawi się w sesji web bota w poście. Oto zasoby, które ma atakujący:
* **bot** **odwiedzi** **URL** podany przez atakującego
* Atakujący może **wstrzyknąć HTML** na stronę (ale nie JS, używany jest dompurify), nadużywając **CSRF**, co sprawi, że **bot stworzy post** z tym HTML.
* Atakujący może nadużyć CSRF, aby sprawić, że **bot** **usunie** **pierwszy** **post** na stronie.
* Ponieważ **posty** są uporządkowane **alfabetycznie**, gdy **pierwszy post zostanie usunięty**, jeśli **zawartość HTML** atakującego jest **załadowana**, oznacza to, że była **alfabetycznie przed flagą**.
Dlatego, aby ukraść flagę, rozwiązanie zaproponowane przez @Strellyc\_ polega na tym, aby **dla każdego testowanego znaku** sprawić, że bot:
* Stworzy **nowy post**, który **zaczyna się** od znanej części **flag** i kilku **załadunków img**.
* **Usunie** **post** na pozycji **0**.
* Zablokuje 255 gniazd.
* Załaduje stronę z postami.
* Wykona 5 losowych zapytań do strony (w tym przypadku example.com) i zmierzy czas, jaki to zajmie.
{% hint style="warning" %}
Jeśli **usunięty** post był **flagą**, oznacza to, że wszystkie **obrazy** **wstrzyknięte** w HTML będą **rywalizować** z **5 losowymi zapytaniami** o to **niezablokowane** gniazdo. Co oznacza, że zmierzony czas będzie większy niż w innym scenariuszu.
Jeśli **usunięty** post był **HTML**, **5 losowych zapytań** będzie **szybsze**, ponieważ nie muszą rywalizować o to gniazdo z wstrzykniętym HTML.
{% endhint %}
### Exploit 1
To jest kod exploita, pobrany z [https://github.com/project-sekai-ctf/sekaictf-2022/blob/main/web/safelist/solution/solve.html](https://github.com/project-sekai-ctf/sekaictf-2022/blob/main/web/safelist/solution/solve.html):
```html
```
### Exploit 2
Ta sama taktyka, ale inny kod z [https://blog.huli.tw/2022/10/05/en/sekaictf2022-safelist-xsleak/](https://blog.huli.tw/2022/10/05/en/sekaictf2022-safelist-xsleak/)
```html
```
## DiceCTF 2022 - carrot
W tym przypadku pierwszym krokiem exploitu było wykorzystanie CSRF do modyfikacji strony, na której znajduje się flaga, aby miała **znacznie więcej treści** (a zatem jej załadowanie zajmuje więcej czasu), a następnie **wykorzystanie puli połączeń do zmierzenia czasu dostępu do strony**, która potencjalnie może zawierać flagę.
W exploicie można zobaczyć:
* Wykorzystanie CSRF
* Zajęcie wszystkich gniazd oprócz 1
* Kalibracja odpowiedzi
* Rozpoczęcie bruteforce'u poprzez dostęp do potencjalnej strony z flagą
* Potencjalna strona zostanie otwarta, a natychmiast zostanie również otwarty URL kontrolowany przez atakującego, aby sprawdzić, ile czasu zajmują oba żądania.
```html
DiceCTF 2022 web/carrot
Step 1: CSRF the admin user, to set a super long title for the flag note (LAX + POST form only possible for 2 minutes after cookies is created)
```
{% hint style="success" %}
Ucz się i ćwicz Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Ucz się i ćwicz Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Wsparcie dla HackTricks
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Dziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na githubie.
{% endhint %}