Compilau de enlaces

Buenas,

Este es un compilau denlaces.

Bueno, ta
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

Enlaces recomendados programación

¡Hola Gente!

A continuación un listado de artículos sobre programación  que están interesantes:

  • Mongly – Un tutorial que nos enseña lo mas básico de mongoDB de manera rápida y fácil.
  • Como desarrollar para android – Un tutorial paso a paso sobre como desarrollar aplicaciones para android
  • ¿Cuando tráfico puede soportar tu sitio web? – Una guía que nos muestra cuanto tráfico debería poder llegar a soportar nuestra web, dependiendo del tipo de tráfico que tiene.
  • Fallback en mysql – una solución que utiliza exclusivamente mysql para evitar el clásico if(id_exists), update } else {  insert.

¡Espero que les sea de utilidad! Son todos muy interesantes. Recomiendo sobre todo el primero, el tercero y el último.

Un abrazo,
Pedro

Excelentes enlaces programación

¡Hola gente!

Tengo nuevamente un compilado de enlaces. ( creo que es el número 14 :P ) Espero que les sea de utilidad, la verdad es que me estoy encontrando con cosas muy interesantes por ahi.

¡Espero que les sea de utilidad!

Un abrazo grande,
Pedro

Obtener URL con PHP

¡Hola gente!

Hace muy poco, me encontré con una situación en la que tenía que obtener la URL desde la que se estaba ejecutando el script. El siguiente código obtiene, tal como el original, además de la url, los parámetros GET. La diferencia con éste es que nos permite eliminar uno o varios parámetros GET.

function getCurrentUrl($exceptions) {
	/*
	 * @param array $exceptions an array containing the string keys of get to be skipped
	 */
		$pageURL = 'http';
		if ($_SERVER ["HTTPS"] == "on") {
			$pageURL .= "s";
		}
		$pageURL .= "://";
		if ($_SERVER ["SERVER_PORT"] != "80") {
			$pageURL .= $_SERVER ["SERVER_NAME"] . ":" . $_SERVER ["SERVER_PORT"] . $_SERVER ["REQUEST_URI"];
		} else {
			$pageURL .= $_SERVER ["SERVER_NAME"] . $_SERVER ["REQUEST_URI"];
		}
		
		foreach($exceptions as $e) {
			$e = preg_quote($e);
			$pageURL = preg_replace('/(?<=(&|\?))'.$e.'=.*?(&|$)/', "", $pageURL);
		}
		
		return $pageURL;
	}

¡Espero que les sea de utilidad!

Un saludo,
Pedro

Compilado de enlaces

¡Hola gente!

Otra vez por acá, con enlaces para guardar para la posteridad:

¡Espero que les sea de utilidad!

Un abrazo grande,
Pedro

Capturar la parte final de una URL

¡Hola gente!

Quería compartir esta expresión regular, que me sirvió para obtener la parte final de una url, independientemente de si es http://droope.wordpress.com o google.com o lo que sea, siempre obtiene solo el sector final ( “droope.wordpress.com”, “google.com”).

$regex = '/(?:http:\/\/)?(?:www\.)?([\w\d]+\.[\w]+(\.[\w]+)?)/';

También creé una función que lo hace toda la matemática por nosotros:

function valid_url_get($url) {
	
	if(preg_match('/(?:http:\/\/)?(?:www\.)?([\w\d\-]+\.[\w]+(\.[\w]+)?)/i', $url, $matches)) {
		return $matches[1];
	} else {
		return false;
	}
	
}

Retorna false si no es válida. En caso contrario, retorna el sector final de la url ;)

Un saludo,
Pedro

Compilado de enlaces V

¡Hola amigos!

A continuación un enlace de compilados. ^^ son pocos, pero son muy buenos.

Un saludo,
Pedro

Programación y cordura

¡Hola gente!

Escribo este artículo inspirado pro un artículo de John Kari, una persona que si bien no actualiza su blog tan seguido como uno quisiera, cuando lo hace crea unos posts espectaculares. En ese artículo, John hace referencia a una persona que dice que los programadores estan haciendo las cosas mal en su mayoría, poniendo en primer lugar la mejor forma de hacer las cosas en lugar de hacer lo que nos pagan de la manera mas rápida posible.

Si bien el primer impulso es asesinar a tan *** persona :), considero que, en cierto sentido, está en lo cierto. La realidad es que a el engine de PHP no le importa si nuestra clase se llama date_select, dateselect, o select_date. Lo mismo respecto al markup del DOM. A los engines no les importa el nombre de nuestras clases! Solo basta con que uno haga las cosas mas o menos bien, con la perfección inherente a uno mismo, para que funcione.

Por otro lado, tener que mantener el mismo código en distintos lugares de nuestra aplicación puede ser bastante desagradable. Hay que crear un listado de las ubicaciones en donde esta ese código – posiblemente utilizando grep – y asegurarnos de no olvidarnos ninguno. Con un poco de habilidad y dominio del lenguaje, evitar esa situación se convierte en una tarea mas entretenida :)

Ese artículo recomienda que leamos estos sitios ( personalmente no he tenido tiempo para leerlos todos, pero son bastante buenos. )

También recomienda que sigamos algunas personas en twitter (yo las sigo):

Follow some of the most respected PHP developers on Twitter.

Además, ya que estamos, unos enlaces del tio droope:

Y algunos follow de twitter:

Algunos locos para seguir por lo menos un rato

¡Espero que les sea de utilidad!

Saludos,
Pedro

Compilado de enlaces IIII

¡Hola amigos!

A continuación, un compilado de enlaces recomendados:

¡Espero que les sea de interés!

Un saludo,
Pedro