¿Cómo se usa “scrscriptipt” o “selselectect” para evitar el filtrado?

21

Una técnica para evitar el filtrado de palabras comunes es la que describí en el título.

Sin embargo, ¿por qué funciona esta técnica? SELECT no es lo mismo que SELSELECTECT, por ejemplo.

    
pregunta yzT 22.02.2013 - 16:18
fuente

2 respuestas

24

Digamos que puse en la lista negra la palabra <script> y la reemplacé con nada. Entonces, <scr<script>ipt> se convierte en <script> .

Es por esto que los desinfectantes / purificadores html bien escritos aplican las reglas de forma recursiva. Solo cuando el último paso de saneamiento no hizo cambios en el contenido, se detendrá / no aplicará otra ronda de las reglas de procesamiento. (También es probable que falle y no devuelva contenido si se requieren demasiadas rondas de procesamiento).

    
respondido por el dr jimbob 22.02.2013 - 16:29
fuente
13

Esto funciona contra los desinfectantes rotos que simplemente usan s.Replace("select","") . Cuando lo aplicas a selselectect , elimina el select en el medio, pero como no se ejecuta nuevamente en la salida, la división sel + ect se convierte en select y sobrevive al desinfectante.

Este ataque no funcionará contra ningún desinfectante sano.

    
respondido por el CodesInChaos 22.02.2013 - 16:22
fuente

Lea otras preguntas en las etiquetas