Bienvenidos a mi blog personal aqui encontran temas de Programacion y Seguridad informatica tambien algunas cuantas tonterias xd

Actualizar estado de facebook con PHP y Curl

Jueves, Diciembre 24th, 2009
<?PHP
/*******************************
*	Facebook Status Updater
*	Christian Flickinger
*	http://nexdot.net/blog
*	April 20, 2007
*******************************/

$status = 'YOUR_STATUS';
$first_name = 'YOUR_FIRST_NAME';
$login_email = 'YOUR_LOGIN_EMAIL';
$login_pass = 'YOUR_PASSWORD';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://login.facebook.com/login.php?m&amp;next=http%3A%2F%2Fm.facebook.com%2Fhome.php');
curl_setopt($ch, CURLOPT_POSTFIELDS,'email='.urlencode($login_email).'&pass='.urlencode($login_pass).'&login=Login');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");
curl_exec($ch);

curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_URL, 'http://m.facebook.com/home.php');
$page = curl_exec($ch);

curl_setopt($ch, CURLOPT_POST, 1);
preg_match('/name="post_form_id" value="(.*)" \/>'.ucfirst($first_name).'/', $page, $form_id);
curl_setopt($ch, CURLOPT_POSTFIELDS,'post_form_id='.$form_id[1].'&status='.urlencode($status).'&update=Update');
curl_setopt($ch, CURLOPT_URL, 'http://m.facebook.com/home.php');
curl_exec($ch);
?>

Como hacer un watermark con PHP

Martes, Octubre 27th, 2009

Bueno ahora les enseñare como ponerle marcas de agua (WaterMark) a sus fotografias desde PHP.

Necesitamos : 1 Foto y 1 archivo PNG con su watermark

yo usare los siguientes materiales:

Foto

WaterMark

El Codigo php que hara la magia es:

<?php
$foto = "foto.jpg"; // Nuestra foto a la que le pondremos el watermark
$image = imagecreatefromstring(file_get_contents($foto));

$w = imagesx($image); // Obtenemos el ancho de la imagen
$h = imagesy($image); // Obtenemos la altura de la imagen

$watermark = imagecreatefrompng('watermark.png'); // nuestro watermark
$ww = imagesx($watermark); // Obtenemos el ancho del watermark
$wh = imagesy($watermark); // Obtenemos la altura del watermark

imagecopy($image, $watermark, $w-$ww, $h-$wh, 0, 0, $ww, $wh); // Copiamos el watermark a la imagen y la colocamos en la esquina inferior derecha

header('Content-type: image/jpeg'); // Hacemos que el header sea una imagen
imagejpeg($image); // Mostramos imagen + watermark
?>

Y el Resultado seria esto: (click para ver en tamaño real)

Tweets desde PHP

Martes, Octubre 27th, 2009

Usando una libreria Open Source llamada PHP Twitter les mostrare como mandar un Tweet desde php =)

<?php
include "twitter.php";
$twi_user = new Twitter("usuario","contraseña");
$tweet = "Hola - Tweet desde PHP";
$twi_user->updateStatus($tweet);
?>

asi de simple claro que pueden implementar un formularion para mandar mediante POST los Tweets eso ya es parte de su Creatividad

La Libreria la puedes descargr de Aqui

Evitar Inyeciones SQL en MySQL

Martes, Octubre 27th, 2009

Les enseñare como evitar inyeciones sql es sus scripts PHP

veamos un ejemplo de consulta a MySQL mediante PHP

<?php
/*
Sdndiego.com SQL Injection
*/
// ----- CONFIG -------
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'password';
$dbname = 'injection';
// --------------------
$user = $_GET['id'];
if(empty($user)){
$user = 1;
}
$db = mysql_connect($host, $dbuser, $dbpass);
mysql_select_db($dbname,$db);
$sql = mysql_query("SELECT * FROM `users` WHERE id=".$user) or die (mysql_error());
$users = @mysql_fetch_row($sql);
echo "<h2><center><u>MySQL Injection TEST<br>Sdmdiego.com</u><br><br>";
echo "<font color='#FF0000'>user_id: </font>".$users[0]."<br>";
echo "<font color='#FF0000'>username: </font>".$users[1]."<br>";
echo "<font color='#FF0000'>country: </font>".$users[3]."<br>";
mysql_close($db);
?>

Atencion:

[…]
$user = $_GET['id'];
[…]
$sql = mysql_query("SELECT * FROM `users` WHERE id=".$user)or die (mysql_error());
[…]

Como podemos ver La variable $user no se modifica correctamente antes de ser utilizada en la
consulta, por lo que por esa variable podemos inyectar nuestro código
SQL malicioso.

index.php?id=1 and 1=1 …

y obtener datos de las tablas de la base de datos lo cual ningun webmaster quiere… para evitar dicha vulnerabilidad hagamos lo siguiente

Si el dato que esperamos en una variable es numérico, lo más rápido y sencillo
es hacer esto:

[…]
$user = (int)$_GET['id'];
[…]

lo que hace es que si se introduce otro dato que no sea un numero no mostrara nada.

usando str_replace:

[…]
$user = $_GET['id'];
$user = str_replace("select","123456789",$user);
[…]

Si en la variable $user se encuentra la palabra “select”, lo sustituirá por
“123456789”, así el atacante no podrá realizar la consulta correctamente.
Podemos poner más expresiones regulares que detecten otras palabras
reservadas del lenguaje SQL.

Inspirado en el paper de un amigo {Ka0x}

Mostrar ip al vistante con PHP

Martes, Octubre 27th, 2009

Este simple codigo mostrara al visitante su IP

<?
$ip = $_SERVER['REMOTE_ADDR'];
echo $ip;
?>