Autor
|
Tema: Código PHP AntiXSS (Leído 27,519 veces)
|
born2kill
|
born2kill, cambia tu forma de pensar a no tengo que cometer esos fallos...
Haber, estamos analizando, como parar ataques XSS, o prevenirnos de ellos, esta claro que no se deben cometer esos fallos, pero estar prevenidos no viene mal. Mi forma de pensar?... born2kill: (\"|%22).*(\>|%3E|<|%3C).* supongo que es para prevenir attribute splitting, como en: <?php echo "<a href=\"{$_GET['entrada']}\">Link</a>"; ?>
se puede saltar simplemente no cerrando el atributo ?a=" onmouseover="alert(/xss/.source)"
(\<|%3C).*script.*(\>|%3E) se salta, igual no cerrando <script.. asi: <script src=//sirdarckcat.net/cache_poisoning.js x
no pones el ; al final.. javascript:alert("pwned")
la coma la puedes no usar llamando funciones desde funcion.apply, los ; puedes no usarlos, los "<" y ">" si los quitas, entonces para que son las primeras 2 reglas? XD, y las comillas, para ataques de XSS no son necesarias, puedes usar /texto/.source Saludos!! Mhh.... Me dejaste pensando, bueno evidentemente solamente podriamos para ataques básico, tengo que encontrar alguna forma de mejorarlo.
La lista que publicaste esta bien interesante.
|
|
|
En línea
|
|
|
|
sirdarckcat
Aspirante a supervillano
Colaborador
Desconectado
Mensajes: 7.029
No estoy loco, soy mentalmente divergente
|
19.5: si sabes en que contextos se pueden usar los valores "codificados" de <? solo cuando de lado del servidor se decodifica el caracter, esos "alias" son validos.. en un vector "normal", no se pueden usar. El filtro de quickwired esta bastante bien, detiene muchos vectores.. habria que analizarlo con tiempo, para ver si se le escapo algo Saludos!!
|
|
|
En línea
|
|
|
|
<?BRoWLi?>
Desconectado
Mensajes: 109
Kien mira por ti?
|
cifrando los tags <> => <>, se solventa el problema
|
|
|
En línea
|
Si TRaTaS D SeR JusTo SoLo Es JuSTo EL CoRaZóN, LoS DeMaS OrGaNoS TRaTaRaN De KiTaRLe La RaZoN - DobleV Piratas.com.es
|
|
|
sirdarckcat
Aspirante a supervillano
Colaborador
Desconectado
Mensajes: 7.029
No estoy loco, soy mentalmente divergente
|
no siempre xD, los attribute breaking, no usan los tags < y > Saludos!!
|
|
|
En línea
|
|
|
|
<?BRoWLi?>
Desconectado
Mensajes: 109
Kien mira por ti?
|
Por el nombre será romper un atributo para meter otro, por ejemplo " onclick="javascript..., si es así bueno yo contaba con que ya se escapan las comillas simples y dobles, yo tengo el gpc ON y lo doy por echo siempre xD, si ese termino no tiene nada que ver con eso, me vendría de lujo una aclaración gracias!! Un saludo!!
|
|
|
En línea
|
Si TRaTaS D SeR JusTo SoLo Es JuSTo EL CoRaZóN, LoS DeMaS OrGaNoS TRaTaRaN De KiTaRLe La RaZoN - DobleV Piratas.com.es
|
|
|
sirdarckcat
Aspirante a supervillano
Colaborador
Desconectado
Mensajes: 7.029
No estoy loco, soy mentalmente divergente
|
las GPC no sirven para eso.. un ejemplo muy sencillo.. 1.- Recibes link = [ http://m" onclick="javascript ] 2.- Lo guardas en base de datos.. INSERT blah DATA ('http://m\" onclick=\"javascript')3.- En otra pagina, lo imprimes, y salen las comillas sin los \ Saludos!!
|
|
|
En línea
|
|
|
|
<?BRoWLi?>
Desconectado
Mensajes: 109
Kien mira por ti?
|
No entiendo , yo hablaba de insertar el código (" onclick="javascript()...) en un input por ejemplo un buscador, no te dejaría acabar el atributo value del input ya que procesa la comilla doble antes de interpretarla. Por ejemplo quedaría algo asi como: <input type="text" value="\" atributo=\"loquesea\""> en caso de no añador los slashes, rompería el atributo... Por otra parte si subes las comillas escapadas a una base de datos, al imprimirla es como si nunca hubieses escapado las comillas porque se procesan dos veces, para eso \\\", esto por ejemplo a la hora de imprimir imprimiría solo una comilla "... pero \\\\\", esto imprimiría \"... Te digo que nunca oí eso de attribute breaking, solo lo e intentado deducir, por si se me va el santo al cielo xDDD
|
|
|
En línea
|
Si TRaTaS D SeR JusTo SoLo Es JuSTo EL CoRaZóN, LoS DeMaS OrGaNoS TRaTaRaN De KiTaRLe La RaZoN - DobleV Piratas.com.es
|
|
|
sirdarckcat
Aspirante a supervillano
Colaborador
Desconectado
Mensajes: 7.029
No estoy loco, soy mentalmente divergente
|
en caso de no añador los slashes, rompería el atributo... Por otra parte si subes las comillas escapadas a una base de datos, al imprimirla es como si nunca hubieses escapado las comillas porque se procesan dos veces, para eso \\\", esto por ejemplo a la hora de imprimir imprimiría solo una comilla "... pero \\\\\", esto imprimiría \"... Las magic quotes no escapan las cosas 2 veces jajajaja Y en un buscador, con "GPC" on.. hay bug.. \" no detiene el atribute breaking.. -->Link enviado por MP<-- codigo fuente: <input type=text name=q style="width: 166px" value="\" esto-es-un-atributo"> como puedes ver, el codigo DOM generado es: <input name="q" style="width: 166px;" value="\" esto-es-un-atributo="" type="text"> Es decir, filtrar con slashes en codigo HTML no sirve de nada Saludos!!
|
|
« Última modificación: 31 Julio 2007, 07:28 am por Sirdarckcat »
|
En línea
|
|
|
|
<?BRoWLi?>
Desconectado
Mensajes: 109
Kien mira por ti?
|
Las magic quotes no escapan las cosas 2 veces jajajaja Me refiero a imprimir \"... en mi pag por ejemplo tengo todos los datos en una base de datos, y esos datos los subo apartir de un archivo especie instalador, donde antes de subir procesa las magic quotes, \" es = a ", \\\" es = a " tambien, porque en realidad el procesado es doble al subir y al imprimir, por eso es que se escribe \\\\\", el primer filtrado es igual a \\\" y el segundo, es decir la descarga desde la base de datos y la impresión de los datos es igual a \", no que las magic quotes escapen nada dos veces, sino que son procesadas dos veces. EDITO: si imprimes el texto a buscar despues de introducirlo en el buscador, cierto! rompe el atributo aun con el addslashes! muchas gracias por el dato tio!! En tal caso: 1. No imprimir el dato a buscar en el input 2. htmlentities 3. <>" = <>" No se si con la tercera me equivoco. un saludo!!
|
|
« Última modificación: 31 Julio 2007, 17:48 pm por BRoWLi »
|
En línea
|
Si TRaTaS D SeR JusTo SoLo Es JuSTo EL CoRaZóN, LoS DeMaS OrGaNoS TRaTaRaN De KiTaRLe La RaZoN - DobleV Piratas.com.es
|
|
|
19.5
Desconectado
Mensajes: 67
|
A ver A ver... Eso se esta desviando un poco... Me parecio interesante que en una misma página se pueda probar una función cómo la que hay en esta página: http://quickwired.com/smallprojects/php_xss_filter_function.phpPodríamos, como dice Sirdarckcat, "ver" si algo se le escapó. Además, hay muchas páginas que muestran variadas formas de hacer un XSS. De verdad eso tiene mucho que hablar. Estadísticas dicen que 8 de cada 10 sufren de este tipo de ataques...
|
|
|
En línea
|
|
|
|
|
|