Obtener un cuadro de alerta en JS sin usar alerta ()

2

Esta es una vulnerabilidad XSS que he encontrado en un sitio de práctica. Entonces, necesito crear un alert() emergente, pero alert() se cambia a prompt() por otro script cargado antes de dar cualquier entrada. (Así que no puedo deshacerme de ese guión) Entonces, ¿cómo puedo hacer un alert() popup?

Las tiras de código < , > y + (solo encontré estos tres) pero cambiar mi carga e inyectarlas no parece ayudar.

He intentado window\["alert"](1) que también se detecta. Así son window["al"+"ert"] y window["al".concat("ert")] .

Creo que necesito encontrar otra solución en lugar de alert (), pero no tengo idea de dónde proceder desde aquí.

    
pregunta user2505282 01.06.2018 - 08:22
fuente

1 respuesta

2

Prueba con una copia nueva de window :

document
.body
.appendChild(document.createElement("iframe"))
.contentWindow
.alert("XSS");

puede limpiar / ocultar el iframe según sea necesario, no tiene que navegar, solo tiene que existir para exponer sus métodos globales window . Piense en ello como un trabajador web con más incorporados. Tenga en cuenta que a pesar de que chrome46 + block alerta desde iframes, no lo está llamando desde técnicamente al iframe, por lo que está permitido. Esta también es una forma decente de evitar que las reescrituras / bifurcaciones ejecuten un proceso que entra en conflicto con el código preexistente que no necesita el contenido del documento para funcionar, pero que necesita herramientas DOM que Worker no proporciona, como alert .

    
respondido por el dandavis 01.06.2018 - 10:25
fuente

Lea otras preguntas en las etiquetas