TALLER HACKING WEB
índice 1.- INTRODUCCIÓN 2.- JAVASCRIPT 3.- FLASH 4.- CRIPTOGRAFÍA
índice 1.- INTRODUCCIÓN 2.- JAVASCRIPT 3.- FLASH 4.- CRIPTOGRAFÍA
INTRODUCCIÓN Necesidades: Conocimiento del protocolo HTTP Algún lenguaje de scripting (perl, python, ) Conocimiento de las tecnologías web Ganas, ganas y más ganas de divertirse ;-) De qué herramientas disponemos?: Internet Herramientas específicas NUESTRO CEREBRO
Conceptos básicos: HTTP INTRODUCCIÓN Protocolo utilizado en la World Wide Web Creado en 1999 (RFC2616) Actualmente utilizándose la versión 1.1 Protocolo sobre TCP Elementos a entender: Métodos Petición: Head, Get, Post, Put, Delete, Trace, Option, Connect Códigos Respuesta 1xx Conexión rechazada 2xx Operación Exitosa 3xx Redirecciones 4xx, 5xx Errores Cookies y cabeceras
HTTP INTRODUCCIÓN EJEMPLO HTTP BÁSICO: GET / HTTP/1.1 Host: www.riojaparty.es Accept: text/html,application/xhtml+xml, application/xml;q=0.9,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-es; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11 (.NET CLR 3.5.30729) Keep-Alive: 115 Connection: keep-alive Cookie:SESS356622a8d05eb6094b7b1e8ce32bd7fa= 67eaaa4d480f685fdb0596fdaf8cd6dc [Línea en blanco] HTTP/1.1 200 OK Date: Fri, 22 Oct 2010 09:31:01 GMT Server: Apache Set-Cookie: 9d4c5b10e3f5ebd5603f7fafd627d97e=fa10740c9ad0102bba8bbe215fb158ca; path=/ Expires: Mon, 26 Jul 1997 05:00:00 GMT Last-Modified: Fri, 22 Oct 2010 09:31:01 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Keep-Alive: timeout=5, max=92 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html
HERRAMIENTAS INTRODUCCIÓN Navegador (Firefox) Complemento de firefox (firebug, hackbar,...) Proxomitron SWFDecompiler (Flash decompiler) JAD (Java Decompiler) Perl, python, SITIO WEB EJERCICIOS HACKING http://www.bright-shadows.net
índice 1.- INTRODUCCIÓN 2.- JAVASCRIPT 3.- FLASH 4.- CRIPTOGRAFÍA
CONCEPTOS BÁSICOS JAVASCRIPT Lenguaje de scripting web Sintaxis basado en Java Se ejecuta en el navegador del cliente Lenguaje inventado por Netscape Communications en 1995 Usado como base en AJAX Ejemplo: document.write(' Hola RIOJ@PARTY');... window.alert('hola Mundo');
1ª PRUEBA JAVASCRIPT First one and very easy to do. Pasos a dar: Ver que pasa. Acceder a código de la página <script type="text/javascript"> function usercheck() { input_user=document.formular.user.value; if (input_user=="warmup") { window.location.href=input_user +".php"; } else { alert("go home!"); window.location.href="http://www.disney.com"; } } </script>
2ª PRUEBA JAVASCRIPT Often used but easy to solve. Pasos a dar: Ver que pasa. Acceder a código de la página. Cómo?
2ª PRUEBA JAVASCRIPT Sacar el código HTML: <script type="text/javascript"> function password () { var d1, d2, d3, d4, d5, input; d1=window.document.bgcolor; d2=window.document.linkcolor; d3=d1.substring (1,5)+d2.substring (1,3); d4=d3.touppercase (); input=prompt("password:",""); if (input!=d3 && input!=d4) { alert("are you crazy? Thats so easy!"); window.location.href="/hackchallenge.php"; } else { window.location.href=d3+".php"; } } </script>
3ª PRUEBA JAVASCRIPT Hard but possible. Pasos a dar: Esta os toca a vosotros.
3ª PRUEBA JAVASCRIPT Hard but possible. Solución: Técnica de engaño: atributo src en etiqueta <script>. Bajar el script correcto y visualizar código.
índice 1.- INTRODUCCIÓN 2.- JAVASCRIPT 3.- FLASH 4.- CRIPTOGRAFÍA
CONCEPTOS BÁSICOS FLASH Aplicación de Adobe Systems Trabaja sobre fotogramas Se ejecuta en el navegador del cliente Desarrollo original de FutureWave Software. Adquirida la empresa en 1996 por Adobe Usa lenguaje ActionScript para ampliar la funcionalidades. Ejemplo: package com.adobe.ooas3 { public class Brick { public var color:string = "red"; public function Brick() { trace("new "+ color +" brick created"); } } }
1ª PRUEBA FLASH Flash One [made by DeathSpawn] Pasos a dar: Ver que pasa. Acceder a código Flash Sothink SWF Decompiler Búsqueda ActionScript Botón on (release, keypress "<Enter>") { _constantpool "mess" "Sign in please" "user" "elitehacker" "Invalid password" "pass" "hackthisbaby" "Invalid username" "Congratulations! You did it!" _push "mess" "Sign in please" _setvariable _push "user" _getvariable _push "elitehacker" _equals2 _not _if true goto #12 _push "mess" "Invalid password" _setvariable #12 _push "pass" _getvariable _push "hackthisbaby" _equals2 _not _if true goto #20 _push "mess" "Invalid username" _setvariable #20 _push "user" _getvariable _push "elitehacker" _equals2 _push "pass" _getvariable _push "hackthisbaby" _equals2 _bitwiseand _not _if true goto #34 _push "mess" "Congratulations! You did it!" _setvariable _geturl 'flashed.php' '' #34 _end }
2ª PRUEBA FLASH Flash #2 Pasos a dar: Pistas: Hay que estar muy pendiente del protocolo HTTP Hay que desarrollar script
2ª PRUEBA FLASH Flash #2 Solución: Bajar swf Decompilar Estudiar algoritmo: Si se busca en Internet se encontrará que se habla de SHA1. Realizar script y dar vueltas a la cabeza. Solución: wishsha1
índice 1.- INTRODUCCIÓN 2.- JAVASCRIPT 3.- FLASH 4.- CRIPTOGRAFÍA
CONCEPTOS BÁSICOS CRIPTOGRAFÍA Utilizado desde época de los romanos. Mecanismos para transformar un mensaje en algo ininteligible para los que no posean la clave. Distintos algoritmos: Sustitución, polialfabéticos, Simétricos, Asimétricos, etc. Funciones resumen (Hash): SHA1, MD5, RC4, etc. Técnicas de criptoanálisis.
1ª PRUEBA CRIPTOGRAFÍA Easy starter! Pasos a dar: Criptoanálisis. Prueba de posibles algoritmos. Frecuencia de letras según idioma En este caso: Cifrado Cesar. Clave sustitución: L Solución: ahdefjuklgrbdsegf Pista: http://www.matematicas.net/paraiso/cripto.php?id=mon_cesar
2ª PRUEBA CRIPTOGRAFÍA Harder but possible. Pasos a dar: Criptoanálisis. Frecuencia de letras según idioma En este caso: Cifrado substitución. Análisis manual Solución: erik Pista: CryptoTools
3ª PRUEBA CRIPTOGRAFÍA VISUAL crypto 2. I hate addition ;-). Pasos a dar:
3ª PRUEBA CRIPTOGRAFÍA VISUAL crypto 2. I hate addition ;-). Pasos para solución: Entender el enunciado: VISUAL Eliminar 0 y cambiar 1 por # Sumar las dos partes SOLUCIÓN: mirror
Preguntas
Contacto
2011 Iberdat Security S.L. Todos los derechos reservados. Securing the future