Sabemos que tiene filtrado, y buscando sobre este tema, encontré mucho en google:
magic quotes. Este filtro se ocupa de adherir una \ a las comillas que pongamos en nuestro código malicioso.
Strip_Tags . Esta función se encarga de eliminar de una variable todo lo que esté entre < >, elimina etiquetas html.
htmlspecialchars. Convierte caracteres especiales en entidades HTML(para codigo PHP)
PHP Input Filter. es una clase escrita en PHP que permite filtrar código malicioso ingresado en los formularios para prevenir ataques XSS de manera sencilla, tiene la cualidad de no limpiar determinadas etiquetas o atributos.
Bueno, y así toda la vida.....
Que nos interesa a nosotros, pues ni p*** idea, porque no se programar, perooooooo.
Bueno el caso es:
en el area de texto introducimos: "<script>alert('XSS')</script>"
en la web se nos muestra: "alert(\'XSS\')"
y en codigo fuente vemos:
Código:
<div style="overflow: auto; width: 100%;">alert(\'XSS\')</script></div>
Podemos fijarnos, que en el código, no muestra toda la etiqueta "<script>". Eso por que es??? es ese el filtrado????
Otra prueba:
en el area de texto introducimos:<script>alert()</script>
en la web se nos muestra: <script>alert()</script>
en el codigo fuente vemos:
Código:
<div style="overflow: auto; width: 100%;"><script>alert()</script></div>
Esta vez no filtra los caracteres especiales, porque ya están codificados con "htmlspecialchars" de la que ya os hable antes.
Otras pruebas:
He intentado añadir HTML al final de mi xss para cerrar asi el "<div>" pero esto tampoco funciona, en la fuente siempre aparece un "</div>" al final de linea que impide seguir a delante.
Para mi, el camino que tiene mejor pinta es el de "htmlspecialchars" puesto que conseguí que publique "<script>" y "</script>" que con las otras formas no pude, la cosa ahora es, que se ejecute ese maldito codigo, para lo cual pienso que necesito mas tag´s en mi declaración.
Porfavor, comentar.