Saludo personalizado
XSS basado en DOM (Type-0): el navegador toma el fragmento de la URL (#...) y lo mete en la página. El servidor nunca ve ese valor.
Probá con /saludo#Santiago y luego con:
/saludo#<img src=x onerror=alert(document.cookie)>
Hola, invitado
VULNERABLE: el script usa innerHTML con el valor del hash.