Bypass escapado comillas dobles
Según su descripción, esto debería funcionar:
\ "); alerta (" xss
El "se escapará como \", dando como resultado \ ", que escapa del \, pero no el".
Para evitar esto, al menos también deberías escapar de \ as \.
Omitir doble comillas y doble barra diagonal inversa a una sola barra invertida
Según su comentario, asumo las partes relevantes reales del trabajo de filtrado de esta manera:
" -> \"
\ -> \
Esto tampoco es seguro. Una inyección podría tener este aspecto:
\\ "); alerta (1
"se escapará como \" en el paso 1, lo que nos lleva a \\ ", que luego se transforma en \" en el paso 2. No puedes usar comillas dobles en la cadena inyectada, pero eso no es un problema ya que XSS con comillas simples o completamente sin comillas es perfectamente posible.
Para asegurar esto, la doble barra invertida tendría que escaparse, no transformarse en una sola, lo que nos daría \\\\\ "con la inyección descrita anteriormente, que es segura.