# Esempi di Connection Pool {{#include ../../banners/hacktricks-training.md}} ## Sekaictf2022 - safelist Nella sfida [**Sekaictf2022 - safelist**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/safelist/solution), [**@Strellic\_**](https://twitter.com/Strellic_) fornisce un esempio di come utilizzare una **variazione** della tecnica **Connection Pool** per eseguire un **XS-Leak**. In questa sfida, l'obiettivo è esfiltrare una flag che apparirà nella sessione web del bot all'interno di un post. Questi sono gli asset di cui dispone l'attaccante: - Il **bot** visiterà un **URL** fornito dall'attaccante - L'attaccante può **iniettare HTML** nella pagina (ma non JS, viene utilizzato dompurify) abusando di un **CSRF** per far sì che il **bot crei un post** con quell'HTML. - L'attaccante può abusare di un CSRF per far **eliminare** al **bot** il **primo** **post** all'interno del web. - Poiché i **post** sono ordinati **alfabeticamente**, quando il **primo post viene eliminato**, se il contenuto **HTML** dell'attaccante è **caricato** significa che era **alfabeticamente prima della flag**. Pertanto, per rubare la flag, la soluzione proposta da @Strellyc\_ è di, **per ogni carattere da testare** far sì che il bot: - Crei un **nuovo post** che **inizia** con la parte conosciuta della **flag** e diversi **img** **caricati**. - **Elimini** il **post** in posizione **0**. - Blocchi 255 socket. - Carichi la pagina con i post. - Esegua 5 richieste casuali a un sito (example.com in questo caso) e misuri il tempo che ci vuole. > [!WARNING] > Se il **post eliminato** era la **flag**, questo significa che tutte le **immagini iniettate** nell'HTML stanno **lottando** con le **5 richieste casuali** per quel socket **non bloccato**. Ciò significa che il tempo misurato sarà maggiore rispetto all'altro scenario. > > Se il **post eliminato** era l'**HTML**, le **5 richieste casuali** saranno **più veloci** perché non devono lottare per quel socket con l'HTML iniettato. ### Exploit 1 Questo è il codice dell'exploit, preso da [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 Stessa tattica ma codice diverso da [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 In questo caso, il primo passo dell'exploit è stato abusare di un CSRF per modificare la pagina in cui è contenuto il flag in modo che abbia **molto più contenuto** (e quindi il caricamento richiede più tempo), e poi **abusare del connection pool per misurare il tempo necessario per accedere alla pagina** che potrebbe contenere il flag. Nell'exploit puoi vedere: - Abusare del CSRF - Occupare tutte le socket tranne 1 - Calibrare la risposta - Iniziare a fare bruteforce accedendo alla potenziale pagina con il flag - La pagina potenziale verrà accessibile e immediatamente verrà anche accessibile un URL controllato dall'attaccante per verificare quanto tempo richiedono entrambe le richieste. ```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}}