Electron contextIsolation RCE via IPC
Si el script de precarga expone un punto final IPC desde el archivo main.js, el proceso de renderizado podrá acceder a él y, si es vulnerable, podría ser posible una RCE.
La mayoría de estos ejemplos fueron tomados de aquí https://www.youtube.com/watch?v=xILfQGkLXQo. Consulta el video para más información.
Ejemplo 0
Ejemplo de https://speakerdeck.com/masatokinugawa/how-i-hacked-microsoft-teams-and-got-150000-dollars-in-pwn2own?slide=21 (tienes el ejemplo completo de cómo MS Teams abusó de XSS a RCE en esas diapositivas, este es solo un ejemplo muy básico):
Ejemplo 1
Consulta cómo el main.js
escucha en getUpdate
y descargará y ejecutará cualquier URL pasada.
Consulta también cómo preload.js
expone cualquier evento IPC desde el main.
Explotar:
Ejemplo 2
Si el script de precarga expone directamente al renderizador una forma de llamar a shell.openExternal
, es posible obtener RCE.
Ejemplo 3
Si el script de precarga expone formas de comunicarse completamente con el proceso principal, un XSS podrá enviar cualquier evento. El impacto de esto depende de lo que el proceso principal exponga en términos de IPC.
Last updated