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

Write-up #csaw Networking101

Este reto fue bastante divertido porque era algo muy basico en apariencia pero requirio mucho pensar para poder resolverlo. En primer lugar obtenemos un archivo pcap disponible en shell-storm y abrimos con wireshark.

Sigue leyendo

Ideas de un nuevo mundo anonimo

Bien creo que se debe hablar un poco de este tema. We aRe Anonymous es una frase que ha tomado un peso muy grande en los ultimos meses, pero ¿quien es Anonymous? Como su nombre lo dice anonymous es anonimo, yo soy anonimo, tu eres anonimo, tu vecino es anonimo.

Camina plácido entre el ruido y la prisa y recuerda
qué paz se puede encontrar en el silencio.

En cuanto sea posible y sin rendirte,
mantén buenas relaciones con todas las personas.
Enuncia tu verdad de una manera serena y clara
y escucha a los demás, incluso al torpe e ignorante, también ellos tienen su propia historia. Sigue leyendo

Programacion orientada a objetos

¿Que es un objeto? Una silla, una mesa, una computadora, una casa. Todos los elementos tangentes en el mundo son objetos pero ademas podemos pensar en los numeros como objetos, las ideas, los modelos y cualquier abstraccion mental que se conciba. Para efectos practicos diremos que un objeto es un ente, ya sea fisico o mental, que puede tener propiedades (forma, tamaño, cantidad), estado (vivo, cerrado, marcado) y acciones (correr, pintar, sumar).

Al referirnos a la programacion basada en objetos nos referimos a una forma de programar. No es un lenguaje, no es una caracteristica, no es una plataforma. Es una filosofia propiamente y nos indica la manera en que podemos abstraer nuestras ideas para programar. La programacion es un modelo abstracto del mundo en el que se trate de resolver un problema especifico, el cual puede ser un problema fisico o abstracto. Sigue leyendo

Proximos tutoriales

Bien he pensado mucho en seguir generando tutoriales asi que de momento no dire los temas, aunque adelantando, nunca faltara C (o C++).

Extraño log de omegle

Esto es lo que pasa con una simpre pregunta

You’re now watching two strangers discuss your question!

Question to discuss:
what do you wanna know about the stranger?

Stranger 2: how big’s your dick?

Stranger 2: no homo

Stranger 1: im a girl sorry

Stranger 2: how big are your tits?

Stranger 1: 36C

Stranger 2: nice!

Quien: el proyecto para desconocer gente.

Bien acabo de encontrar un sitio en Internet: Omegle. Se trata de un sitio donde conoces gente y se presentan como stranger (extraños) y empiezan a platicar, la perfecta forma de conocer gente desconocida. Debido a que no puedo montar un servidor completo tratare de implementar con AJAX y php un sistema en español con algunas cosas que he visto podrian servir.

  • Voz en lugar de video
  • La posibilidad de hablar con 2 extraños a lavez
  • Incluir al espia en la conversacion si lo desean los participantes
  • Mejorar el sistema de extraños, muchos se repiten entre si

Bien el codigo estara en github a traves de https://github.com/fulapol/quien y tendra lugar en algun lugar que luego anunciare.

Licencias de software

Generalmente conocemos una definicion de software libre muy general: Los terminos de la licencia GPL, pero realmente que son las licencias  que nos ofrecen.

El objetivo de las licencias es ofrecer los términos bajo los cuales se libera el software; estas licencias se caracterizan por permitir utilizar, estudiar, modificar o redistribuir el software – sea modificado o no.

Licencia GPL

La licencia GPL es una licencia creada por la Free Software Foundation. Su objetivo es evitar que el software libre pierda las libertades de los usuario. Al ser un documento legal, se le llama acuerdo o contrato de licencia.

A finales del 2005 se anuncio el trabajo de la version 3 y a principios de 2006 se presento el primer draft. Su publicacion tardo varios meses y se publico finalmente a mediados del 2007 contemplando los siguientes puntos:

  • Las diversas formas en que alguna persona podría quitar libertades a los usuarios.
  • Prohibir el uso de software libre en sistemas que utilizan la llamada Gestión de derechos digitales o DRM, sistema criticado por la comunidad del software libre.
  • Resolver ambigüedades y aumentar la compatibilidad de GPLv3 con otras licencias.
  • Facilitar su adaptación a otros países.
  • Incluir cláusulas que defiendan a la comunidad de software libre del uso indebido de las patentes de software.
  • Mostrar usuarios registrados.

Los programas que usan esta licencia pueden combinarse o re-licenciarse bajo otra licencia que sea compatible. La lista de compatibilidades esta disponible en http://www.gnu.org/licenses/license-list.es.html

LGPL

Esta licencia llamada Lesser General Public License es una licencia de la FSF y la diferencia entre esta y la GPL es que permite enlazarse con una aplicacion no libre. Su uso se recomienda al crear una codigo que provea funciones implementadas en sistemas cerrados, pues no se daria ninguna ventaja al software privativo y no habria problemas si terminan en un sistema propietario.

Licencia Apache

La licencia Apache fue creada por la Apache Software Foundation y no es una licencia copyleft. Con esta licencia se requiere el uso de un disclaimer y un aviso de copyright. Al igual que otras licencias libres le permite al usuario distribuir, modificar y usarlo con cualquier proposito sin embargo las modificaciones no necesitan usar la misma licencia por lo que pueden terminar siendo de codigo cerrado.

Licencia MIT/X11

Esta licencia fue usada para el proyecto X Window System del MIT en los 80′s. Dado que no incluye copyright, su modificacion es permitida. Esta licencia permite los derechos de uso, copiar, modificar, enlazar, publicar, sublicenciar o vender copias del software y estos derechos pasan a la persona que obtiene el software.

Licencia BSD

Es parecida a la licencia MIT y es usada en los sistemas BSD. Existen 3 versiones:

  • BSD original o antigua BSD.- Contiene 4 clausulas. Pide mantener la licencia en redistribuciones de codigo, una mencion del desarrollo generado por la universidad de Berkeley y no permite usar el nombre de la escuela y de los contribuidores para promocionar los productos derivados.
  • BSD Revisada, modificada o BSD-3.- Esta version elimina la clausula que obligaba a otorgarle credito a la universidad.
  • BSD simplificada o licencia FreeBSD.- Elimina la clausula donde se prohibe el uso de los nombres de os contribuidores agregando un aviso que menciona la neutralidad de sus comentarios y puntos de vista sobre el desarrollo del proyecto FreeBSD

Licencia MPL

La licencia publica de Mozilla (MPL) fue creada por Netscape y luego paso a ser de la Fundacion Mozilla. Esta licencia hace posible el uso de codigo en sistemas cerrados con el problema de que se necesita una notificacion especifica para el uso de codigo con diferente licencia por lo que el usar cualquier cosa licencia incluso bajo la GPL podria llegar a ser en algunos casos ilegal.

Licencia PHP

La licencia PHP permite la redistribución del contenido licenciado en forma de código fuente o binaria siempre y cuando se cumplan los siguientes requisitos:

  1. Se incluya la declaración de los derechos de autor de la licencia PHP;
  2. La palabra “PHP” no se use en el título de las obras derivadas;
  3. Se incluya el siguiente anuncio bajo cualquier forma en la que se redistribuya el código:
This product includes PHP software, freely available from <http://www.php.net/software/>

Contribuir en el software libre

Bien puesto que hace un tiempo di una conferencia y no he publicado las diapositivas, decidi mejorar la presentacion y aqui les dejo mi presentacion de contribuir en el software libre en un nuevo formato muy interesante.

Contribuir en el software libre on Prezi

Bien debido a la pesima personalizacion de este blog, solo puedo usar la URL que arriba esta para que vean la presentacion asi que, espero la disfruten.

Mi experiencia en el #wgsdb2

Bien, esta es la segunda vez que participo en un evento CTF y para mi fortuna me ha ido muy bien. El primero en el que participe hace ya algunos ayeres fue el I torneo que organizo blind-sec en donde quede en el lugar 22 y ahora este donde estuve en el 23. La verdad es que si, vaya coincidencia. Sigue leyendo

write up #wgsbd2 zeropwn

Bien este reto fue muy interesante. Aqui debemos conectarnos al servidor por el puerto 8008. La primera vez que entre me devolvio un codigo XML con una cadena interesante. La cadena estaba codificada con base64 y al volverla texto plano vemos unos parametros muy interesantes, entre ellos podemos ver que se usa un sistema de MD5-sess para ejecutarel login. Aunque no pude resolverlo en ese momento despues nos dieron una gran pista, la verdad para mi gusto solo hubieran dado informacion sobre los parametros y no todo el cosigo pero bueno, la pista fue el codigo fuente y un diccionario de passwords. Aqui en mas el reto era pan comido, Se hacia un programa inverso, es decir, que diera lo que el servidor queria. quedando asi: Sigue leyendo

Write up #wgsbd2 Stealthehash

Bien al principio nos daban un tip: r3ady_for_the_n3xt_hash

Asi que nos conectamos como al servidor en el puerto 2011 y mandamos ese texto. De regreso nos da un hash y nos pide el siguiente. Al mandarle un hash cualquiera nos tira un error, asi que hacemos el intento y nos volvemos a conectar. Mandamos el tip y el hash que recien conseguimos, el cual si funciona asi que se repite el ciclo. Nos da un hash y nos pide el siguiente. Queda claro que esto es un ciclo y bueno no queda mas que hacer que programar algo para que lo haga por nosotros: Sigue leyendo