droopescan: escaneo de CMS

¡Hola a todos!

Tengo mucha información para compartir últimamente: he aprendido mucho sobre CMS y como determinar sus versiones desde la perspectiva de un atacante sin autenticación: en particular, desarrollé una herramienta que te permite hacer exactamente eso.

La herramienta se llama droopescan, y el código fuente está aca:

https://github.com/droope/droopescan

Si lo quieren instalar en un sistema debian, o en un sistema que tenga el manejador de paquetes de Python (PIP), lo pueden instalar con los siguientes comandos:


apt-get install python-pip
pip install droopescan

Pueden encontrar ejemplos, y demás en el README de la aplicación, en github. Planes a futuro para la aplicación son el agregar la posibilidad de escanear WordPress y quizás Drupal. Para mi investigación este año, voy a realizar un escaneo a nivel mundial de instalaciones de Drupal, WordPress, Joomla y SilverStripe.

El año pasado realicé un escaneo de Drupal y SilverStripe en Nueva Zelanda, la presentación, en inglés, está acá:

https://www.owasp.org/images/2/23/CMS_HELL.pptx

¡Compilado de enlaces!

¡hola a todos!

Ante ustedes, un todopoderoso, increible grandioso compilado de enlaces mas:

Eso, gracias!

Un abrazo,
Pedro

Como hackear páginas web ( en serio )

Las webs hoy en día son cada día mas seguras. ¿O no? Como intento demostrar frecuentemente en twitter, tal vez no sea asi.

Nota: Este capitlo es el primero de una serie de — por ahora — dos capitulos. El segundo es un articulo se especializa en identificar potenciales vulnerabilidades, como hackear paginas web (fingerprinting and information gathering).

Hay muchas herramientas hoy en día para encontrar vulnerabilidades en una web. Si una web utiliza una versión vieja de un CMS, cosa que podemos determinar utilizando una herramienta como Wappalizer o WhatWeb (ver el segundo capitulo de la serie), la cuestión es mas sencilla. Es muy importante hoy en día mantener actualizado nuestro software. En caso contrario, un atacante podría buscar en el changelog de nuestro CMS todo lo referente a correcciones de vulnerabilidades en versiones posteriores a la que nosotros tenemos actualmente.

También hay otras herramientas para hackeear webs, pero yo hoy voy a optar por explicar que tipo de vulnerabilidades se pueden encontrar una web de una manera mas “artesanal”. Este artículo no plantea demostrar un tipo de vulnerabilidad nueva, ni pretende ser la demostración de un conocimiento muy avanzado. Simplemente es una explicación básica de algunos tipos de vulnerabilidades que pueden encontrarse en una web y como un atacante explotaría de ellas. Básicamente, se trata de:

  • Inyecciones SQL
  • Cross Site Scripting ( Javascript injection )
  • Local file inclusion / Remote file inclusion

Para todos los ejemplos, usaremos código de Damn Vulnerable Web App. Te podés descargar esta aplicación para practicar los ejemplos que planteo acá. Todos los ejemplos estan hechos con la seguridad en low. Una vez instalado el app, andá a DVWA Security y elegí “low”.

Sigue leyendo

Clases: paginación en PHP

Hola amigos,

Quiero dedicar un instante para recomendar esta espectacular clase, y de paso aumentar el PR de su autor, merecidamente:

http://mis-algoritmos.com/digg-style-pagination-class/
http://mis-algoritmos.com/2007/03/16/some-styles-for-your-pagination/

Es una paginación espectacular, sencilla, liviana, y altamente configurable.

No necesito decir mas. :)

¡Un saludo!
Droope

Drupal: Como descargar nodos (modulo)

Si, drupal.

Drupal es un CMS, como muchos que existen en el mundo, pero con una diferencia: Drupal es una masa, está espectacularmente desarrollado, y es impresionante ver la cantidad de cosas que pueden hacerse sin tocar una sola línea de código.

Por ejemplo, uno podría asignarle una dirección física (ej Callao 297) a un post (nodo), y luego hacer que automáticamente se muestre un Gmap. Obviamente, algo hay que saber, y no es que lee nuestra mente; pero no es para nada complejo.

Otra cosa que uno podrìa, por ejemplo, es, en caso de que quisiera desarrollar una aplicación que mande datos a un servidor y los guarde y muestre, un simple formulario, hacerlo en una hora y media. Y no me refiero a un form sin estilo, sinó a una aplicación completa con paginado, control de usuarios, upload de múltiples imágenes y muchos chiches mas, como caching, image-resizing, y mas.
Sigue leyendo

Los 2 tipos de programación

Hoy, pausando en mi busqueda de empleo (la que motivó mi artículo como buscar trabajo freelance y cuanto cobrar) estuve programando un poco mi nueva versión de mínimal, un sistema de manejos de contenido que comenzó como blog, pero promete transformarse en algo mas.

Hay muchos CMS hoy en día, ya sé. Pero bueno, para mi es divertido, y me parece que está bueno tener el orgullo de decir, esto que vos vez acá, esto, lo hice yo. Yo puedo hacer estas cosas, ¿Sabías? :)

Igualmente no estoy utilizando un Framework, por lo que mi trabajo, además de intensamente espiritual y hermoso, es lento… Nadie es perfecto.

En fin, volviendo a lo que estaba hablando: Considero que hay dos tipos de programación. Parece un concepto muy loco, pero me parece que es asi… no estoy seguro todavía, y puede ser que haya mas tipos, también. Que quede claro que no me refiero a los dos tipos como “Programación orientada a objetos” o “Modular”. Este es otro punto de vista.

La programación extrema

La programación extrema trata de hacer aplicaciones que rompen algoritmos de encripción, o otras actividades de dificultad considerable.
En este tipo de programación, uno no desarrolla código muy extenso, sinó código muy preciso y complejo, que seguramente incluya muchos loops y intente averiguar una verdad muy compleja.

Como un ejemplo de este tipo de programación, podemos poner a un intento de hackear una consola. Este código, según el autor llevó 3 semanas, pero sin embargo pesa solo 100kb. La verdad es que no entiendo muy bien de que va el código ese, pero me pareció interesante usarlo como un ejemplo.

Es código corto, pero preci(o)so, y que requiere de una habilidad de pensar abstractamente espectacular.

Programación extensa

Este tipo de programación es al que le estoy dedicando tiempo ultimamente, y es del que estan hechas todas las Kernels del mundo, y todos los Sistemas Operativos y CMS. ¡Programar algo similar a esto lleva mucho tiempo! No es que se trate de programación compleja, pero cada cosa necesita ser programada.

Si querés que todos los posts aparezcan en un índice, tienes que hacer una función que lea los posts de una base de datos, los procese, los formatee, y los muestre. Ahora, si querés paginar los elementos, cambia todo. Tenés que hacer una consulta SQL con LIMIT, y bla bla.

Agradezcamos a dios por las librerías, los CMS, los Frameworks, y los lenguajes de programación.

Y vos, ¿Qué opinás? ¿Qué tipos de programación existen?