Las entidades de texto en HTML no pueden hacer nada interesante, y el contenido entre las etiquetas span se interpreta como texto. Para hacer algo interesante, deberá inyectar una nueva entidad (que se realiza utilizando < y > ), o necesitará que su entrada se inyecte en una ubicación sin texto (como los parámetros de una entidad, o dentro de un bloque <script> , o similar). Si su entrada no se refleja en ningún otro lugar, y < y > siempre están codificados, entonces no puede explotar la página a través de XSS.
Sin embargo, puede haber formas de engañar al servidor para que envíe < y% co_de sin codificar sin que eso signifique. Una forma que he visto es enviar caracteres Unicode que no son > pero que el servidor podría asignar a esos caracteres ASCII antes de reflejarlos en la salida. Considere caracteres como <> , ˂˃ , ‹› , ≤≥ , todos los cuales pueden asignarse a <> por un servidor y luego no se codifican como <> . No hay garantías, pero sucede.