comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[PHP] Creando una firma dinamica

  • 0 Respuestas
  • 1025 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado arthusu

  • *
  • Underc0der
  • Mensajes: 531
  • Actividad:
    8.33%
  • Reputación 2
  • Yo solo se que no se nada - Socrátes
    • Ver Perfil
    • Arthusu BLOG
  • Skype: arthusuxD
« en: Mayo 05, 2015, 04:05:41 pm »
Introduccion

Buenas he estado sin tiempo para postear pero en esta ocasion les mostraré como crear una firma dinamica de manera que obtengan algunos datos, muchos ya saben como realizarlo por que no tiene tanta dificultad mas que nada se trata de utilizar la libreria de You are not allowed to view links. Register or Login.

Un buen tutorial que recomiendo mucho sobre PHP GD es el siguiente: You are not allowed to view links. Register or Login el cual esta muy bien explicado.
Tratare de ser breve colocando solo los pasos.

Estructura a realizar

La estructura con la que trabajaremos sera la siguiente:



Explicando un poco que hace cada archivo.

.htaccess - Con este archivo interpretaremos imagenes png (con su extension .png) como archivos php y bloquearemos cualquier intento de acceso al archivo logs.txt

firma.php - Con este archivo generamos la imagen dinamica (pronto le cambiaremos la extension a .png)

KeepCalm-Medium.ttf - Es el tipo de letra que utilizaremos para la firma dinamica.

logs.txt - Aqui guardaremos los logs, en este caso IP, Sistema, Si usa proxy.

rVJgsdx.png - Es la imagen que utilizaremos para la firma dinamica.

view_logs.php - Este es un archivo para ver los logs online. Con un simple formulario que tiene que ingresar una clave.

Nota importante: Nada de aqui es guardado en una base de datos. Y esto es facilmente explotable haciendo peticiones desde la misma IP un sin fin de veces cargaria todo el archivo logs.txt haciendolo demasiado pesado (Esa idea la hizo un amigo You are not allowed to view links. Register or Login) entonces lo unico que podemos realizar en este caso es:

1.- Denegar las ips que realizen demasiadas peticiones
2.- No insertar IPS repetidas en el archivo logs.txt
3.- Cambiar el nombre de la carpeta para que no hagan mas peticiones.

Cualquiera de estos tres puntos no se ven en este tutorial.

Creando la firma

En este caso crearemos el archivo PHP para realizar la firma dinamica, no entrare en detalles de explicaciones ya que comente el codigo lo mas posible para que se entendiera, de todas maneras si no entienden algo, arriba deje una buena documentacion con la que pueden guiarse.

Código: PHP
  1.  <?php
  2.  // no reportamos errores
  3.  You are not allowed to view links. Register or Login(0);
  4.  // el nombre de la imagen a poner como firma
  5.  $im_name = "rVJgsdx.png";
  6.  // los datos de la imagen
  7.  $data_im = You are not allowed to view links. Register or Login($im_name);
  8.  // el tipo de imagen
  9.  You are not allowed to view links. Register or Login("Content-type: {$data_im['mime']}");
  10.  // creamos la imagen en este caso png
  11.  $im = You are not allowed to view links. Register or Login($im_name);
  12.  // creamos un color para usarlo en el texto
  13.  $color = You are not allowed to view links. Register or Login($im, 45, 196, 236);
  14.  // obtenemos la IP
  15.  $ip = $_SERVER['REMOTE_ADDR'];
  16.  // obtenemos los datos del navegador
  17.  $user_agent = $_SERVER['HTTP_USER_AGENT'];
  18.  // vemos si existe algun proxy (no es 100% fiable), y lo agregamos a la variable ip
  19.  $proxy_headers = You are not allowed to view links. Register or Login(
  20.         'HTTP_VIA',
  21.         'HTTP_X_FORWARDED_FOR',
  22.         'HTTP_FORWARDED_FOR',
  23.         'HTTP_X_FORWARDED',
  24.         'HTTP_FORWARDED',
  25.         'HTTP_CLIENT_IP',
  26.         'HTTP_FORWARDED_FOR_IP',
  27.         'VIA',
  28.         'X_FORWARDED_FOR',
  29.         'FORWARDED_FOR',
  30.         'X_FORWARDED',
  31.         'FORWARDED',
  32.         'CLIENT_IP',
  33.         'FORWARDED_FOR_IP',
  34.         'HTTP_PROXY_CONNECTION'
  35.     );
  36.     foreach($proxy_headers as $x){
  37.         if (You are not allowed to view links. Register or Login($_SERVER[$x])) {
  38.          $ip .= "/Estas usando proxy!";
  39.          break;
  40.         }
  41.     }
  42.  
  43.     // reemplazamos los datos del navegador en caso de que sea firefox por firefox o chrome por chrome, la lista es corta se pueden agregar mas
  44.  $navegador = You are not allowed to view links. Register or Login('/.*(firefox|chrome).*/i', '$1', $user_agent);
  45.  // lo mismo que arriba en este caso con el sistema, igual podemos hacer la lista personalizable
  46.  $sistema = You are not allowed to view links. Register or Login('/.*(windows|mac|linux).*/i', '$1', $user_agent);
  47.  // guardamos los datos en una variable para usarla en el texto
  48.  $string = " Tu IP: $ip \n Tu navegador: $navegador \n Tu sistema: $sistema \n Te estoy vigilando!\n";
  49.  // asignamos una variable con la fuente para usarla en el texto
  50.  $fuente = "KeepCalm-Medium.ttf";
  51.  // en caso de que no se haya detectado nada mostramos el navegador, aunque nos trolleen xD :P
  52.  if($navegador == ''){
  53.   $navegador = $_SERVER['HTTP_USER_AGENT'];
  54.  }
  55.  // what? :3, Guardamos logs
  56.  $manejador = You are not allowed to view links. Register or Login("logs.txt", 'a+');
  57.  You are not allowed to view links. Register or Login($manejador, "$string\n\n\n");
  58.  You are not allowed to view links. Register or Login($manejador);
  59.  // magia is here! Mostramos el texto en las coordenadas dadas
  60.  You are not allowed to view links. Register or Login($im, 10, 0, 300, 10, $color, $fuente, $string);
  61.  // png transparency, para la transparencia en la imagen sino se veria desfigurada
  62.  You are not allowed to view links. Register or Login($im, true);
  63.  You are not allowed to view links. Register or Login($im, true);
  64.  You are not allowed to view links. Register or Login($im);
  65.  // destroy image, liberamos la memoria
  66.  You are not allowed to view links. Register or Login($im);
  67. ?>
  68.  
  69.  

Asignar formato a la imagen y denegar acceso a los logs

En este apartado crearemos el archivo .htaccess el cual denegara acceso a los logs y interpretara nuestro archivo png como php.

Citar
AddType application/x-httpd-php .png
<FilesMatch "\.(txt)$">
  Order Deny,Allow
  Deny from all
</FilesMatch>

Creando archivo para ver los logs

Por ultimo creamos nuestro archivo view_logs.php con el cual veremos los logs.

Código: PHP
  1.  <?php
  2.  if (You are not allowed to view links. Register or Login($_POST['pass']) && !You are not allowed to view links. Register or Login($_POST['pass']) && $_POST['pass'] == 'tucontraseñae.e') {
  3.   $gestor = You are not allowed to view links. Register or Login('logs.txt', 'r');
  4.   $contenido = You are not allowed to view links. Register or Login($gestor, You are not allowed to view links. Register or Login('logs.txt'));
  5.   You are not allowed to view links. Register or Login($gestor);
  6.   echo "<pre>" . $contenido . "</pre>";
  7.  }
  8. ?>
  9. <form method="post" action="">
  10.  <p><input type="text" name="pass" /></p>
  11.  <p><input type="submit" name="enviar" /></p>
  12. </form>
  13.  

En este caso solo hay que cambiar tucontraseñae.e por la contraseña que le quieras asignar a la entrada.

Finalizando

Le cambiamos la extension al archivo firma.php y le ponemos el nombre que queramos en mi caso firma.png
Lo abrimos en el navegador para ver los resultados.



En este caso mi ip es ::1 ya que es una ip local.

Les dejo por ultimo los archivos por si quieren probarlo, igual pueden realizar el suyo propio cambiando algunas funciones como dependiendo del tipo de imagen que sea JPEG, PNG, etc. el tipo de letra, sus datos, etc. De igual manera con esto podrian crearse hasta generadores de firmas, saludos!

Archivos: You are not allowed to view links. Register or Login
« Última modificación: Mayo 05, 2015, 09:27:41 pm por arthusu »

 

¿Te gustó el post? COMPARTILO!



Creando una capa de abstraccion de base de datos

Iniciado por ~ Yoya ~

Respuestas: 5
Vistas: 2209
Último mensaje Julio 18, 2013, 12:01:27 am
por ~ Yoya ~
Creando herramientas interesantes con funciones de red en php

Iniciado por Oggy

Respuestas: 0
Vistas: 1453
Último mensaje Diciembre 17, 2012, 09:02:00 pm
por Oggy