Publicado el 14/11/2009 12:11:00 en Programación Web. Total de votos: 3 Votar
Buenas,
En mi caso estoy demasiado acostumbrado a PHP4 entonces decidí aprender PHP5 y pasarme de una vez. Leyendo me encontre con una funcion de PHP5 muy interesante, que ahorra bastante tiempo y codigo.
La funcion __autoload lo que hace es cargar los archivos automaticamente sin tener que estar haciendo muchos includes para llamar a las clases(en caso de un script grande).
Definicion de PHP.NET
Puede definir una función __autoload la cual es llamada automáticamente en caso de que intente usar una clase que no ha sido definida aún. Al llamar esta función la ejecución del script da una última oportunidad de cargar la clase antes de que PHP falle con un error.
Lo que hice fue crear una clase llamada "clase.class.php" y llamarla desde un archivo cualquiera en php.
<?php
function __autoload($class) {
require($class.'.class.php');}
$esc = new clase();
$esc->escribir("Hola Mundo");
?>
La clase "clase" contenia una simple funcion echo que escribia un "Hola mundo".
Saludos
Comentarios: 4 | Leer comentarios
Publicado el 24/09/2009 12:09:00 en Programación Web. Total de votos: 5 Votar
Bueno pequeño script vulnerable para practicar sql en localhost. Volvi a crear el post para agregar la db e imagenes.
Creamos una base de datos llamada sql. Luego de crear la db vamos a la pestaña SQL e insertamos el siguiente codigo.
Esto va a crear una tabla llamada "users", con 3 campos (id, users, pass). Insertando ademas, 2 usuarios (admin,pepito).
CREATE TABLE IF NOT EXISTS 'users' (
'id' int(11) NOT NULL,
'user' varchar(11) NOT NULL,
'pass' varchar(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Volcar la base de datos para la tabla 'users'
--
INSERT INTO 'users' ('id', 'user', 'pass') VALUES
(1, 'Admin', 'Passw0rd'),
(2, 'pepito', 'megapass');
Nos quedaria algo asi:
Ahora vamos y configuramos el siguiente script con los datos de la db.
<?php
# DB
$host = 'localhost';
$user = 'root';
$pass = '';
$dbname = 'sql';
# Conexion
$db = mysql_connect($host, $user, $pass);
mysql_select_db($dbname,$db);
$sql = "SELECT * FROM users WHERE id=".$_GET['id'];
$query = @mysql_query($sql);
if(@mysql_num_rows($query)==0)
{
echo "No hay columnas<br>";
}
$fetch=@mysql_fetch_row($query);
echo "ID: ".$fetch[0]."<br>";
echo "Username: ".$fetch[1]."<br>";
?>
El script recoge los valores GET de ID y comprueba si hay algun valor en la db.
Ejemplo: http://localhost/sql.php?id=1
Devolveria:
ID: 1
Username: Admin
Ahora ya podemos practicar las inyecciones.
Espero que les sirva
Saludos
Comentarios: 6 | Leer comentarios
Publicado el 12/09/2009 12:09:00 en Programación Web. Total de votos: 2 Votar
Empezemos, lo que necesitamos es la libreria fpdf...
Comenzemos, Voy agregando lineas y explicandolas . Despues pongo el code completo
Incluimos las clases (librerias) de fpdf
require_once("fpdf.php");
Leemos la libreria fpdf y se la pasamos la variable, que posteriormente sera usada para definir otros valores o funciones.
Agregamos una pagina.
Código:
Seteamos el tipo y tamaño de letra (font).
Creo que queda claro para que sirve cada paremetro
$pdf->SetFont('Arial','B',16);
Insertamos texto en el pdf. 70 y 50 Son las coordenadas de donde sera insertado el texto
Les recomiendo que vallan practicando con esto
$pdf->Text(40,10,"Esto es un texto");
Salto de linea, <br>
Insertamos una Celda. Parametros:
1er parametro: 60 y 10 coordenadas, 2do parametro : Texto, 3er parametro: Celda rectangular, 4to: Borde.
Bueno obviamente si le ponemos al parametro borde 0 no tendria borde.
$pdf->Cell(60,10,"FPDF :D",1,1);
Seteamos los colores del texto (Los colores los pueden sacar con photoshop ^^)
$pdf->SetTextColor(220,50,50);
Seteamos el color de fondo de la celda.
$pdf->SetFillColor(230,230,0);
Seteamos el color del texto.
$pdf->SetTextColor(230,230,0);
Insertar Imagenes .
$pdf->Image("x.png",70,30);
Aca unos ejemplos:
<?php
require_once("fpdf.php");
$pdf = new fpdf();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Text(80,10,"Esto es un texto");
$pdf->Cell(40,10,"Hola Mundo");
$pdf->Ln();
$pdf->Cell(70,10,"PDF Creado con PHP",1,0);
$pdf->Ln();
$pdf->Cell(40,10,"Esto es una celda",0,1);
$pdf->Output();
?>
<?php
require('fpdf.php');
class PDF extends FPDF
{
function Header()
{
global $title;
//Arial bold 15
$this->SetFont('Arial','B',15);
//Calculamos ancho y posicion del titulo.
$w=$this->GetStringWidth($title)+6;
$this->SetX((210-$w)/2);
//Colores de los bordes, fondo y texto
$this->SetDrawColor(0,80,180);
$this->SetFillColor(230,230,0);
$this->SetTextColor(220,50,50);
//Ancho del borde (1 mm)
$this->SetLineWidth(1);
//Titulo
$this->Cell($w,9,$title,1,1,'C',1);
//Salto de línea
$this->Ln(10);
}
function Footer()
{
//Posicion a 1,5 cm del final
$this->SetY(-15);
//Arial italica 8
$this->SetFont('Arial','I',8);
//Color del texto en gris
$this->SetTextColor(128);
//Numero de pagina
$this->Cell(0,10,'Pagina '.$this->PageNo(),0,0,'C');
}
function ChapterTitle($num,$label)
{
//Arial 12
$this->SetFont('Arial','',12);
//Color de fondo
$this-...
Continúa aquí...Comentarios: 2 | Leer comentarios
Publicado el 22/08/2009 12:08:00 en Hacking Tools. Total de votos: 2 Votar
Como todos creaban su extractor... yo hice el mio :P
Ventajas:
* Para foros donde no se puede ver la lista de usuarios
Desventajas:
* Lento
<?
# Em3trix
set_time_limit(0);
?>
<style>
body {text-align:center;background-color:black;color:white;}
</style>
<form method="post" action="">
Web: <input type="text" name="web"><br>
Inicio: <input type="text" name="de"><br />
Fin: <input type="text" name="hasta"><br />
<input type="submit" value="Extraer!" name="boton"><br />
</form>
<?
$web = $_POST['web'];
$de = $_POST['de'];
$hasta = $_POST['hasta'];
if(isset($_POST['boton']) and !empty($web) and !empty($de) and !empty($hasta))
{
if(!strstr($web,"http://"))
{
$web = "http://".$web;
}
function smf($web,$de,$hasta)
{
$i = $de;
while($i<=$hasta)
{
$url = $web."/index.php?action=profile;u=$i";
$leer = @file_get_contents($url);
$ex = explode("\n",$leer);
$inc = 0;
while($inc<count($ex))
{
if(strstr($ex[$inc],"<a href=\"mailto"))
{
$ex2 = explode("<a href=\"mailto:",$ex[$inc]);
$ex3 = explode("</a>",$ex2[1]);
$ex4 = explode("\">",$ex3[0]);
echo $ex4[1]."<br>";
$fp=@fopen("extract.txt", "a");
@fwrite($fp,$ex4[1]."\n");
}
$inc++;
}
$i++;
}
@fclose($fp);
}
smf($web,$de,$hasta);
}
?>
Las sugerencias son bienvenidas.
Comentarios: 3 | Leer comentarios
Publicado el 15/08/2009 12:08:00 en Programación Web. Total de votos: 4 Votar
Captcha casero que hice hace un tiempo:
Captcha.php
<?php
# Em3trix
session_start();
$x = ImageCreateFromGIF("captcha.gif");
$numeros = rand(0000,9999);
$letras = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWYZ";
$final = $letras{rand(1,50)};
$final .= $letras{rand(1,50)};
$final .= $letras{rand(1,50)};
$rand = $numeros.$final;
$rand2 = $rand[3].$rand[5].$rand[1].$rand[6].$rand[2].$rand[7].$rand[3];
$color = imagecolorallocate($x,"250","0","0");
$string = imagestring($x,5,"13","7","$rand2",$color);
$color1 = imagecolorallocate($x,"250","250","0");
$color2 = imagecolorallocate($x,"0","250","0");
$color3 = imagecolorallocate($x,"0","0","250");
$linea = imageline($x,"0","20","100","10",$color3);
$linea = imageline($x,"0","10","20","100",$color1);
$linea = imageline($x,"50","0","100","100",$color2);
ImageGIF($x);
$_SESSION['rand'] = $rand2;
?>
login.php
<?php
# Em3trix
session_start();
function login()
{
?>
<div id=login>
<table align=center bgcolor=#cccccc align=left>
<form method=post action="">
<td colspan=2 align=center>
<img src=Captcha.php> <input type=text name='comp'></td></tr>
<tr>
<td colspan=2 align=center>
<input type=submit value="Logueate" name=boton></td></tr>
</form>
</table>
</div>
<?
}
if(!isset($_POST['boton']))
{
login();
} else {
if($_SESSION['rand'] == $_POST['comp'])
{
echo "CORRECTO <br> Bienvenido";
unset($_SESSION['rand']);
} else {
login();
echo "INVALIDO <br> <a href=''>Volver</a>";
unset($_SESSION['rand']);
}
}
?>
[+]Descarga:
http://rapidshare.com/files/267920981/Captcha_Eme.rar
EDIT: Agregue unas lineas al code.
Comentarios: 2 | Leer comentarios