Event Loop Blocking + Lazy images
Last updated
Last updated
Dans cet exploit, @aszx87410 mélange la technique de canal secondaire d'image paresseuse à travers une injection HTML avec une sorte de technique de blocage de la boucle d'événements pour divulguer des caractères.
Il s'agit d'un exploit différent pour le défi CTF qui a déjà été commenté sur la page suivante. Jetez un œil pour plus d'informations sur le défi :
L'idée derrière cet exploit est la suivante :
Les publications sont chargées par ordre alphabétique
Un attaquant peut injecter une publication commençant par "A", puis une certaine balise HTML (comme un grand <canvas
) occupera la plupart de l'écran et quelques balises <img lazy
finales pour charger des éléments.
Si au lieu d'un "A" l'attaquant injecte la même publication mais en commençant par un "z". La publication avec le drapeau apparaîtra en premier, puis la publication injectée apparaîtra avec le "z" initial et le grand canvas. Comme la publication avec le drapeau est apparue en premier, le premier canvas occupera tout l'écran et les balises <img lazy
finales injectées ne seront pas visibles à l'écran, donc elles ne seront pas chargées.
Ensuite, pendant que le bot accède à la page, l'attaquant enverra des requêtes fetch.
Si les images injectées dans la publication sont en train d'être chargées, ces requêtes fetch prendront plus de temps, donc l'attaquant sait que la publication est avant le drapeau (par ordre alphabétique).
Si les requêtes fetch sont rapides, cela signifie que la publication est après le drapeau par ordre alphabétique.
Vérifions le code :