Estoy intentando construir un escáner XSS utilizando Python para un sitio web. El sitio web tiene función de creación de widgets. El código fuente del sitio web tiene plantillas para cada tipo de widget. El sitio web devuelve una respuesta de la API para cada llamada POST para crear widgets, que luego se obtiene mediante javascript para completar la plantilla del widget con datos.
Funcionamiento de los escáneres XSS generales: Normalmente, los escáneres XSS detectan XSS al enviar caracteres especiales y palabras clave de javascript como >, <, script, ", etc. en la carga útil / URL y luego monitorear la respuesta html para verificar si los caracteres están codificados o filtrados. Si los caracteres están no está codificado / filtrado, luego se envía todo el vector XSS. Si se refleja exactamente en la respuesta html, entonces tenemos una vulnerabilidad XSS en la página.
Declaración de problema: El problema con el sitio web en el que estoy trabajando es que recibo una respuesta de API en lugar de html. La respuesta de la API contiene la carga útil inyectada, pero tiene todos los caracteres especiales en formato codificado, pero aparece en la fuente de la página de la interfaz de usuario sin codificación, lo que activa XSS. Si trato de obtener el html de la página web mediante una llamada GET, obtengo el html de la página web pero tiene plantillas vacías y no contiene datos.
¿Hay alguna manera de superar el problema? Puedo encargarme de la parte de codificación, pero no puedo averiguar cómo proceder con este problema. Una idea general de cómo proceder ayudará.