JScape: Guía interactiva de XSS

Siempre es posible ver un tema desde varias puntos de vista. La seguridad infórmatica es una forma de nombrar al hacking, pero para mi es imposible no verlo como una suerte de deporte. Aunque pasaron muchos años antes de que descubriera el mundo de las wargames y CTF’s siempre existio esta sensación de competencia. Guías como las de Ricardo Narvaja donde se proponian retos de forma continua y los archivos de defaces que daban puntos e insignias generaban un ambiente muy activo. Ahora que ha pasado el tiempo he tratado de encontrar un punto intermedio entre estas competencias y un enfoque educativo. Hace un par de días descubrí un par de retos interesantes llamadas alert(1) y prompt(1) donde se debe hacer precisamente eso, ejecutar un alert y un prompt. Además coincidio que me encontraba realizando el tutorial de jQuery. Así fue como se me ocurrió la idea tan terriblemente sencilla: Hacer una guía paso a paso e interactiva de retos con la explicación como un dato opcional para mantener el estilo CTF. El único objetivo es generar un alert en Javascript.

Por el momento no es un proyecto terminado. El repositorio se encuentra en GitHub por lo que cualquier persona puede crear un fork y añadir retos a su gusto. Me parece un primer paso muy satisfactorio a mis planes de generar material para explicar distintos temas y el método parece funcional para abarcar mas ramas a futuro.

Bienvenido al mundo real

Como cada fin año la gente se propone nuevas meta a realizar y comienza a hacer su lista de propositos. Para algunos es el bajar de peso, aprender un nuevo idioma, salir de viaje, hacer algo que quedo pendiente este año. Para mi este año me ha abierto mucho las expectativas para el siguiente. Hoy en mi lista se encuentran algunos proyectos muy ambiciosos y me han empezado a generar movimientos en mi vida que no tenía contemplados para nada. Sin embargo estas fechas también son para reflexiónar, para plantearnos nuestra situación actual y como es que hemos llegado a ella. No es que pretenda hacer una crónica de este año en mi vida ni juzgar aquello que definitivamente no conozco pero me parece importante resumir mis pensamientos antes de avanzar y curiosamente todo esto ha ocurrido cerca de fin de año. Incluso me dan ganas de comenzar preguntando ¿coincidencia o destino?

TL;TR El problema está en que nadie parece tomar en cuenta dos factores (que pueden contarse como tres): Estamos en México (y para este caso estamos en Latinoamérica, que la situación es igual al sur de este país), los que tienen noción de la situación se aprovechan de aquellos que la desconocen, y los que no son abusivos no dan mucho tiempo a los demás por que la vida y el trabajo no lo permite: Bienvenido al mundo real

Sigue leyendo

Pequeño giro editorial

Después de una entretenida platica en esta semana alguien me ha ayudado a clarificar algunas ideas. No eliminare las respuestas que están publicadas en mi blog (que no son mas de 5), sin embargo aquella idea de ir liberando soluciones a Wargames va a tener un cambio. La persona con la que hable es admin de uno de estos juegos y aparte de hablar sobre las implicaciones que tendría en su pagina, me ha hecho ver que existen algunas otras alternativas como los CTF’s, ya que existen repositorios con retos que han terminado y cuyas soluciones ya se encuentran en la red. Lo único que haré es ir reviviendo algunos y explicándolos dentro de este blog. Ademas he echado a andar algunos otros proyectos que también son buenos y tengo que escribir material educativo sobre las diversas áreas. Sin mas, ese es el pequeño giro editorial de mi blog.

Solucionarios: TT0 – Reverse Me

La fuerza bruta no es tu mejor amiga cuando puedes observar la forma en la que trabaja el algoritmo. Quisiera decir que esa es una frase de mi abuelita (seria una anécdota increíble), pero lo cierto es que mi abuelita no tiene ni idea de lo que significa la frase, aun así, la frase no deja de ser cierta. Los ataques de fuerza bruta, como su nombre lo indica, son ataques que utilizamos como ultimo recurso, cuando somos tan brutos que no sabes que hacer mas que intentar todas las claves que podamos a diestra y siniestra, sin embargo en algunas ocasiones la mala implementación nos permite observar un algoritmo y determinar la forma en la que se comporta, por lo que podemos deducir rápidamente la clave secreta. Asi iniciamos este reto:001_Firefox Developer Edition

 

Sigue leyendo

Solucionarios: TT0 – Lets Fuck Your Brain

Este reto es uno de los mas divertidos para mi. Aquí la resolución del problema es directa sin mayor problema, pero me ha llevado a conocer un nuevo lenguaje de programación y al concepto de «lenguaje de programación esotérico». Después de este reto la cantidad de información que desconozco se volvió gigantesco, pues existen cientos de formas de resolver un problema y solo conocemos las mas triviales. Pensar fuera de la caja muchas veces nos hace llegar a lenguajes como este. Sigue leyendo

Solucionarios: TT0 – 1337Browser

Dentro de los juegos el segundo en orden (pero 24 en nivel) es el 1337Browser. Para pasarlo debemos encontrar la clave secreta. La primera pantalla que nos encontramos es la pagina web de un navegador de internet. Si deseamos descargarlo debemos introducir el codigo que compramos con un numero de telefono. Por supuesto nosotros no vamos a pagar por un nuevo programa de Internet que nos podemos descargar (gratuitamente) para realizar una atualizacion del que ya tenemos.

Sigue leyendo

Solucionarios: TT0 – Premission

Estos ultimos dias han pasado algunas cosas en mi vida. Como no me gusta hablar de mi vida privada hablemos de lo tecnico; ahora mi laptop funciona con Linux, gentoo para ser mas exacto, y como mi teclado esta en ingles no utilizare los signos de puntuacion de forma correcta, pero quien se fija en eso ahora? La instalacion de Gentoo que tengo tardo mucho tiempo en funcionar poque inicie desde un Stage 1 (el cual oficialmente ya no existe) por lo que configurarlo y hacerlo funcional tardo mas tiempo del que puede ser necesario. Sin embargo regrese y tal como habia prometido resolvere algunos Wargames para incentivar a la gente que se dedica a hacer estos juegos a que se reinvente y a quienes los juegan o quienes estan iniciando a que entiendan algunos de los problemas y tecnicas utilizadas. Asi que iniciemos.

El primer juego que llego a mi vida fue el TryThis0ne.com al cual le tengo un gran afecto ya que alguno de sus juegos son muy tecnicos, faciles pero muy tecnicos, y eso me permitio conocer este mundo desde otra perspectiva que no he podido encontrar en ningun otro sitio. Cuando te registras por primera vez encuentras un reto llama PreMission y como su nombre lo indica es una mision que te permite acceder a los demas juegos. La idea es muy simple: tienes un texto cifrado y la idea es resolver el problema. Cualquiera que entre al sitio puede ver el texto original asi que emprezaremos con el analisis:

WP_20151108_001

Sigue leyendo

Matasano Crypto Challenge Set 1 (1/?)

Los retos criptográficos de Matasano están diseñados para enseñar criptografía de forma práctica. El primer set de ejercicios es simple. Implementar Base64 y funciones XOR hasta llegar a AES-128-EBC. Empecemos a resolverlos. Sigue leyendo

Los criptoamigos y algunas consideraciones éticas

Como comenté en mi post anterior (memorias), la escena hacker actual en el país (México) es prácticamente inexistente y al parecer esto es una problemática en muchos otros países. La falta de interés en los temas, la falta de preparación, la facilidad para obtener herramientas automatizadas, la complejidad técnica a la que se enfrentan los jóvenes con las tecnologías actuales, la presión de la sociedad para educar a nuestros niños en cosas más lucrativas económicamente en lugar del estudio formal, la gran pérdida de tiempo que implican las redes sociales. De forma honesta debo decir que desconozco la causa por la cual la escena ha decaído estos últimos años, principalmente porque yo mismo estuve fuera de la misma. Es sorprendente ver como han cambiado las cosas en unos pocos años. En mis tiempos el auto estudio se complementaba con el apoyo de comunidades online en forma de foros, canales de IRC y alguno que otro evento (a los que no llegué a asistir). Es por eso que he decidido tomar una decisión que está en una zona gris dentro de la ética. Sigue leyendo

Sintaxys Highlighting.

Está es la lista de lenguajes que puedo utilizar (lista con fines de referencia):

  • actionscript3
  • bash
  • clojure
  • coldfusion
  • cpp
  • csharp
  • css
  • delphi
  • erlang
  • fsharp
  • diff
  • groovy
  • html
  • javascript
  • java
  • javafx
  • matlab (keywords only)
  • objc
  • perl
  • php
  • text
  • powershell
  • python
  • r
  • ruby
  • scala
  • sql
  • vb
  • xml

Suficientes para hacer suficiente trabajo de programación y escritura. Proximamente algo de erlang para todos ustedes :3

Memorias

Hoy es un buen día para hablar de las memorias. Ya estamos a 30 de octubre, ¿Qué significa eso? Significa que ayer se cumplieron 46 años de la primera transmisión de datos de ARPANET, lo que marcó el inicio del Internet y esa es una gran historia que todos deberíamos recordar. Hoy también quiero contar una historia sobre mi y el tiempo que ha transcurrido desde hace unos años. ¿Por qué hablar de historia hoy? ¿De que memorias me hablas? ¿USB o SD? Para mis lectores (que probablemente son 0 en este momento) resulta que ayer se cumplieron cuatro años y una quincena desde mi última publicación. Empecemos por el principio, y lo digo de forma literal: Sigue leyendo

Una mirada a SQL (IV)

Para esta miradita repasaremos lo que tenemos. Ya hemos puesto en marcha los servidores SQL y http con php, hemos creado una base de datos, tablar e insertado algunos datos y contreñas seguras. Ahora continuemos con un paso muy sencillo. Rellenemos las bases de datos con mas datos asi que

INSERT INTO base_de_datos.usuarios (id, nick, pass) VALUES
 (NULL, 'pedro', MD5('algunpa$$')),
 (NULL, 'jorge', PASSWORD('0trop4$$'))
 (NULL, 'alguntroll', SHA1('123456'))

Bien como vimos en la leccion pasada podemos usar informacion especifica usando la forma padre.hijo con padre = base de datos e hijo=tabla en este caso. Por lo siguiente dentro de la seccion de valores pasamos los pares de valores (cosas entre parentesis) para cada registe que deseamos hacer, siendo en este caso 3 usuarios. Sigue leyendo

Una mirada a SQL (III)

En la parte anterior creamos nustra base de datos y su estructura basica asi que es momento de usarla. Primero debemos crear un usuario y ese primer usuario como es logico pensar, debe ser el administrador. Para crear datos debemos de usar la sentencia INSERT INTO ….. VALUES …. pasando como parametros la tabla, los campos y los valores asi que a por ello.

INSERT INTO usuarios (nick,pass) VALUES ("admin","root")

Esto no es nada seguro asi que usemos una pequeña funcion para la contraseña que sigue. Esta funcion es nada menos que la famosisima md5(). Asi nuestras proximas contraseñas seran un hash «seguro», aunque algunos pueden preferir usar cosas como sha-1 y sha-512. Sigue leyendo

Una mirada a SQL (II)

Bien para empezar a trabajar con SQL pedire unos cuantos requisitos. El primero sera la base de datos MySql, un servidor http como Apache con soporte para PHP y el sostema de gestion de base de datos PHPMyAdmin. Estos requisitos se pueden cumplir facilmente en la mayoria de las distribuciones de Linux y en Windows con los paquetes LAMP, uno que recomiendo es el appServer. Una vez instalado y configura entramos a la interfaz de PhpMyAdmin y observamos una parte de la ventana en el lado izquierdo como si fuera un menu y en la derecha la informacion del servidor SQL y muchos datos adicionales que sirven para la administracion. Por el momento nos fijaremos en la parte que dice «Bases de datos» casi al final de la lista.

Al entrar en esta parte podremos ver una lista con las bases de datos que existen y la codificacion de caracteres, este ultimo dato por el momento no nos debe preocupar. En la parte superior vemos la pestaña SQL y la seleccionamos, lo que nos muestra un cuadro de texto para ingresar nuestra consulta y un boton de confirmar para ejecutarla. Sigue leyendo

Una mirada a SQL (I)

SQL es el lenguaje de programacion usado para obtener informacion de las bases de datos relacionales. Al darse a conocer el modelo relacional de bases de datos, aparecio un lenguaje llamado SEQUEL y este continuo su desarrollo hasta convertirse en lo que hoy conocemos como SQL.

Este lenguaje es un lenguaje declarativo de acceso a bases de datos, por lo que no ejecuta codigo. En lugar de eso genera consultas a los registros y devuelve la informacion o realiza las acciones especificadas sin tener una estructura de flujo como cualquier otro lenguaje de programacion. Sigue leyendo