PHP/HTML/CSS
Grave vulnerabilidad en PHP-CGI
7 may
Grave vulnerabilidad en PHP-CGI
Importancia: 5 – Crítica
Fecha de publicación: 03/05/2012
Recursos afectados Servidores web con PHP ejecutándose como CGI.
Descripción Posibilita el paso de parámetros al intérprete, lo que permite la ejecución de código arbitrario y la revelación de información confidencial.
Solución Ya existen módulos de la herramienta de pentesting y hacking metasploit que permiten explotar esta vulnerabilidad por lo que se recomienda actualizar cuanto antes. Se puede hacer a través del código fuente, aunque se recomienda instalarlo a través de los mecanismos de actualización de paquetes de Linux. Para sistemas Windows, se puede descargar de la web http://windows.php.net/download/. Como alternativa, si no se puede actualizar, el fabricante propone las siguientes reglas del módulo mod_rewrite de Apache para bloquear las URLs maliciosas:
RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]
RewriteRule ^(.*) $1? [L]
Detalle Eindbazen, un equipo de competiciones CTF, ha descubierto una vulnerabilidad en PHP-CGI que permite pasar parámetros al intérprete de PHP, como -s o -r, a través de la URL. Por ejemplo añadiendo la cadena ‘?-s’. Como resultado de la inyección de estos parámetros en la URL, se puede mostrar el contenido de archivos de código fuente (que puede incluir información confidencial como, por ejemplo, contraseñas de BBDD) o ejecutar código PHP arbitrario. Aunque el parámetro ‘-r’, para ejecutar código PHP, es Más >
Función para crear un enlace corto en PHP
17 mar
Esta es una función que permite crear un enlace corto mediante la API de TinyURL usando cUrl.
<?php /* by .:WindHack:. */ function GetTinyURL($Url) { $TinyURL = "http://tinyurl.com/api-create.php?url=".$Url; $cURL = curl_init(); curl_setopt($cURL, CURLOPT_URL, $TinyURL); curl_setopt($cURL, CURLOPT_RETURNTRANSFER, 1); $ShortURL = curl_exec($cURL); curl_close($cURL); return $ShortURL; } /* Ejemplo de uso */ echo GetTinyURL('http://www.daw-labs.com'); /* La función devuelve: http://tinyurl.com/6k2exuy */ ?>
Modificación al plugin MyBBPublisher
28 ene
Debido a diversas razones y a la sencillez con la que realiza las publicaciones el plugin para difundir los nuevos temas en sitios sociales (Facebook y Twitter), me vi en la obligación de realizar una modificación a MyBBPublisher, la cual está enfocada sólo en Facebook.
Basándome en la referencia (API de facebook) y su método ‘post‘, encontré los parámetros que pueden ser enviados para publicar contenido en nuestra ‘fan page’.
MyBBPublisher por defecto maneja sólo estos dos valores:
- access_token (indispensable)
- message
Sin embargo, esto nos dá muchas limitaciones, ya que el contenido enviado a facebook queda muy vacío.
Revisando un poco más la referencia, se pueden encontrar los siguientes campos:
- description -> La descripción del enlace.
- link -> El enlace adjunto a la publicación.
- picture -> Nos permite agregar una imagen a la publicación.
- name -> El nombre del enlace.
Ahora la cuestión radica en conseguir la información necesaria para cada parámetro. Ya se hace necesario abrir el archivo “mybbpublisher.php” para comenzar a modificar su contenido.
Primero que todo, buscamos aproximadamente la línea 661 donde se encuentra:
$text_fb = stripslashes($mythread['subject']);
Y agregamos el siguiente código, el cual nos dará la descripción (texto) del tema recién publicado.
$message_fb = htmlspecialchars_uni(stripslashes($mythread['message']));
Explicando un poco, esto es fácil…Aplicamos el mismo método usado para obtener el ‘Asunto’ del tema, pero según mybb_posts para obtener el contenido del post se usa Más >
Firma «dinámica» en PHP
13 oct
¡Buenas tardes!
Hace mucho tiempo quería saber cómo hacer esas firmas que tienen datos «dinámicos» ya sea texto, imágenes, entre otras cosas. Investigué un poco y encontré una manera de hacerlo, por lo cuál decidí crear ésta entrada.
Necesitamos principalmente un host para alojar el archivo, sea éste pago o gratuito. En todo caso el requisito más importante es que tenga la librería GD activada.
Para empezar, hay que tener la imagen que servirá de base y/o fondo. En mi caso elegí ésta:
Imagen de fondo para la firma dinámica.
Recuerden elegir una que esté bien estilizada, sea de buenas tonalidades y muy clara para lo que desean hacer.
También pueden darle algunos retoques en la zona donde se mostrará el texto para hacer más énfasis.
Ahora hay que programar el código PHP que se encargará de escribir y «editar» la imagen.
<?php /* * Escrito por .:WindHack:. * Agradecimientos: Kenkeiras * www.daw-labs.com & www.cibernodo.net */ $UserAgent = $_SERVER['HTTP_USER_AGENT']; $IP = $_SERVER['REMOTE_ADDR']; /* GetBrowser($UserA) * Esta función se encarga de obtener el nombre del navegador * usando como medio la cadena del UserAgent. */ function GetBrowser($UserA) { $Browser = ""; if (strstr($UserA,"Chrome")) $Browser = "Chrome"; elseif (strstr($UserA,"Firefox")) $Browser = "Firefox"; elseif (strstr($UserA,"MSIE")) $Browser = "Internet Explorer"; elseif (strstr($UserA,"Opera")) $Browser = "Opera"; elseif (strstr($UserA,"Safari")) $Browser = "Safari"; else $Browser = "(?)"; return $Browser; } /* GetOS($UserA) * Esta función usa el mismo método que la anterior, * exceptuando que se encarga sólo de obtener el nombre * del Sistema Operativo (OS). */ function GetOS($UserA) { $OS = ""; if (strstr($UserA,"Windows")) $OS = "Windows"; elseif (strstr($UserA,"Linux")) $OS = "Linux"; elseif (strstr($UserA,"Mac")) $OS = "MAC"; else $OS = "(?)"; return $OS; } /* Tipo de Más >

