hackbackdoor
  vulnerabilidad xss
 
COMO OCURRE EXACTAMENTE UNA VULNERABILIDAD XSS?
Esto ocurre en sitios dinámicos al enviar información e imprimirla en pantalla sin antes
verificar que caracteres que la conforman, PHP (por ejemplo), lo que hace es interpretar el
código que ingresamos y devuelve un documento HTML, por lo tanto, un XSS permitiría
hacer que el visitante tenga cierto control sobre el resultado HTML que dará el script PHP,
vamos a un ejemplo, un simple buscador:
<input type="text" name="q" value="<?php echo $_GET['q']; ?
>"/><br/> 
<input type="submit" value="buscar" /> 
Ese fragmento de código se ubicarán que es el formulario de búsqueda, y este cuando carga,
imprime el valor q de los parametros GET si este existe, buscador.php?q=coches, nos devolverá: 
<input type="text" name="q" value="coches" /><br/> 
<input type="submit" value="buscar" />
Este ejemplo tiene 0 seguridad, por lo que vayamos a lo simple... cerremos ese input, y
pongamos un texto luego del cierre buscador.php?q=coches">asd de esa manera,
hacemos que el código PHP sumisamente interprete primero nuestro HTML deformandolo
y devolviendonos algo como:
<input type="text" name="q" value="coches">asd" /><br/> 
<input type="submit" value="buscar" />
Como verán, lo resaltado en rojo al quedar fuera del input se interpreta como texto, con
esto notaremos que un sitio no verifica la información que el usuario puede ver facilmente.
XSS ESTÁTICO O PERSISTENTE
Se le da cualquiera de esas definiciones a los XSS que quedan almacenados en una base de
datos o cookies, y cada vez que esa información se carga, se produce dicha falla, para verlo
más facil doy el ejemplo con un post de taringa, creo un post en taringa, y suponiendo que
este tenga XSS le inserto un <script> javascript, por lo tanto, cada vez que se cargue el
dichoso post, se ejecute el javascript que ingrese. Por dicho motivo un XSS estático se
puede considerar mucho más peligroso.
PARA QUE SE SUELE USAR UN XSS?
Normalmente se lo utiliza para robar una cookie de un usuario, el lammer utilizaría
esa cookie para autentificarse en el sitio como la victima, tomando posesión de su cuenta,
lo primero que se hace es cambiar contraseñas o el mail para recordar estas, para obtener
un acceso legitimo luego. Otro uso que se le da es el de molestar o querer llamar la
atención, insertando textos ofensivos, redirecciones en javascript, en fin, dependiendo de
la imaginación de cada uno.SOBRE LOS FILTROS Y SNIPPETS PARA EVITAR XSS
Terribles en su mayoría, sin entender la razón, la gente se confía de filtros muy
específicos, que en su época habrán funcionado, pero hoy en día son totalmente simples de
burlar, una lista de algunos ejemplos y sus métodos para burlarlos:
Magic Quotes y comillas: Este metodo, que consiste en evitar que se utilizen las comillas,
apostrofes y acentos agregandoles una barra antes para que esa comilla se interprete como
texto y no como parte de código. El asunto con estos métodos es que innevitablemente la
primer comilla se interpreta, y las consiguientes son las que se filtran con éxito, eso
permite a un método tedioso pero a fin exitoso de XSS, utilizando document.write() y
string.fromCharCode() para imprimir mediante caracteres hexagecimales nuestro
código javascript.
Palabras específicas: Consiste en evitar que se ingresen palabras, como script, <script>, lo
cual es muy simple de burlar, ya que son sensibles a mayúsculas y minúsculas y HTML no
lo es, por lo que ingresando <ScRiPt > ya nos estamos riendo.
Caracteres especiales: Impedir que se ingresen exactamente caracteres como comillas,
apostrofes, etiquetas, parentesis, simple de burlar utilizando entidades HTML, o
códificaciónes de texto diferentes.
Reemplazo de palabras: Muchos desarrolladores sugieren el uso de funciones de
reemplazo de caracteres como str_replace() para reemplazar una etiqueta o palabra que
pueda probocar un desborde de código, pero al no ser recursiva esta función reemplazará
solo una vez la string que le indiquemos... esto podría saltearse con solo ingresar
<scr<script>ipt>, ya que al eliminar la coincidencia el medio, hará que los extremos de
la string se junten formando otra etiqueta <script>. 
QUE LENGUAJES PUEDEN SER AFECTADOS POR ESTA FALLA DE
PROGRAMACIÓN
Todo lenguaje que permita la creación y edición de HTML, estamos hablando de PHP,
ASP, Javascript, AJAX, inclusive CSS si utilizamos Internet Explorer para navegar por
internet. 
DEFENDETE DE MANERA EFICIENTE CONTRA EL XSS
Obviamente la cuestión de todo esto es irse a lo seguro y utilizar htmlentities()y
htmlspecialchars() para depurar nuestra información entrante, volviendo al ejemplo del
buscador: 
<input type="text" name="q" value="<?php echo htmlspecialchars($_GET['q']); ?>"
/><br/> 
<input type="submit" value="buscar" /> 
 
  Hoy habia 951 visitantes (3412 clics a subpáginas) ¡Aqui en esta página!  
 
H4CK-B4CK-D00R Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis