Para empezar, la etiqueta de entrada HTML en este caso está configurada para restringir la entrada a 15 caracteres, por lo que su <script>alert(1);</script>
estándar no se ajusta. Esto probablemente se puede evitar usando un proxy de ataque como OWASP ZAP o Burbsuite, que le permitirá enviar respuestas que normalmente no serían aceptadas.
No hay manera de saber qué filtros del lado del servidor están en su lugar simplemente mirando el código HTML. HTML es del lado del cliente, y la seguridad del lado del cliente casi siempre se puede omitir. (Al igual que el límite de caracteres descrito anteriormente). Es probable que haya varias capas de filtrado que se activan en el servidor después de enviar el formulario.
Hay dos pasos que debes intentar. Primero, en lugar de comenzar con un script de carga útil completo, intente simplemente ingresar caracteres específicos y combinaciones de caracteres, como < y & gt ;. Vea qué caracteres se filtran y cuáles se codifican o no se filtran. Luego intente crear una cadena de ataque que omita el filtrado o sea la forma descodificada de lo que realmente desea.
La otra cosa que debes hacer es ejecutar un fuzzer en la aplicación. Esto intentará una gran cantidad de cadenas de ataque diferentes, para tratar de encontrar una que se filtre por el filtro.