Definitivamente estoy de acuerdo con el comentario sobre la ineficacia de las listas negras, y no solo porque la respuesta hace referencia a mi sitio web :).
No poder deshacerse de la parte de contenido inicial puede limitar la oportunidad de XSS exitoso a través de una etiqueta meta, aunque no es del todo imposible. Por ejemplo, si la parte inicial cambia alguna vez para comenzar con una palabra no numérica como "No hay resultados para ...", podría inyectar algo como:
;url=hxxp://www.maliciousxss.com" HTTP-EQUIV="refresh" blah="
que, en función de su descripción, debería dar como resultado una etiqueta meta similar a:
<meta property="the:property" content="No results for;url=hxxp://www.maliciousxss.com" HTTP-EQUIV="refresh" blah=" (Page 1)" />
Lo probé con éxito en FF 29.0.1 pero no creo que esto funcione en ningún otro navegador moderno.
Si el texto inicial siempre comienza con un número, podrías intentar algo como
" STYLE="width:expression(alert('XSS'));" blah="
, que nuevamente en función de tu ejemplo debería dar como resultado una etiqueta meta similar a:
<meta property="the:property" content="100 results for" STYLE="width:expression(alert('XSS'));" blah=" (Page 1)" />
Este solo funcionaría en IE 7 o anterior, por lo que es aún más limitado.
Tuve que hacer algunas suposiciones sobre el comportamiento del sitio y la validación de entrada adicional para que estos ejemplos particulares no funcionen, pero espero haber ayudado a respaldar la afirmación de thexacre de que las listas negras rara vez son un enfoque completamente efectivo. La lista blanca (cuando sea posible) es mejor, pero la codificación de salida es siempre una obligación cuando los datos generados por el usuario se incorporan en la respuesta del servidor.