# Przykłady Puli Połączeń {{#include ../../banners/hacktricks-training.md}} ## 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** do przeprowadzenia **XS-Leak**. W tym wyzwaniu celem jest wyekstrahowanie 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) wykorzystując **CSRF**, co sprawi, że **bot stworzy post** z tym HTML. - Atakujący może wykorzystać CSRF, aby **bot** **usunął** **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 znaku do przetestowania** sprawić, że bot: - Stworzy **nowy post**, który **zaczyna się** od znanej części **flag** i kilku **ł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. > [!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. ### Eksploit 1 To jest kod exploitu, 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 eksploitu 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 potrzebnego na dostęp do strony**, która potencjalnie może zawierać flagę. W eksploicie można zobaczyć: - Wykorzystanie CSRF - Zajęcie wszystkich gniazd oprócz 1 - Kalibracja odpowiedzi - Rozpoczęcie brute force 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)

Step 2: XS-Search with connection-pool timing leak, we have to use window.open (LAX cookie)




``` {{#include ../../banners/hacktricks-training.md}}