elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 ... 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 [65] 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 ... 172
641  Programación / PHP / Auth Logger - Librería simple para registrar intentos de logueo en CodeIgniter en: 9 Julio 2011, 20:44 pm
Se trata de una pequeña librería adaptada para CodeIgniter para registrar los intentos de log-in en nuestro sistema de autenticación. Para guardar los logs se emplea un fichero xml.

Código
  1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2. //begin AuthLogger.php -- Library
  3.  
  4.  
  5. class AuthLogger {
  6.  
  7. /*-----------------------------------------------------------------------*/
  8. /**
  9. * Class Settings
  10. * @logFile = Name of the log file
  11. * @logPath = The path where the logFile will
  12. *  be saves. By default it saves it
  13. *  in the CI logs folder.
  14. */
  15. private $logPath;
  16. private $logFile = 'auth_logs.xml';
  17.    private $user, $pass, $ip, $useragent;
  18.  
  19. /*-----------------------------------------------------------------------*/
  20. /**
  21. * The constructor of the Class.
  22. * It needs and array with the parameters.
  23. */
  24. function __construct($params)
  25.    {
  26.     //The logPath it can be changed if the lib
  27.     // won't be used with CI
  28. $this->logPath = APPPATH.'logs/';
  29.        $this->user = $params['user'];
  30.        $this->pass = $params['pass'];
  31.        $this->ip = $params['ip'];
  32.        $this->useragent = $params['useragent'];
  33.  
  34.        $this->addLogs($this->user, $this->pass, $this->ip, $this->useragent);
  35.  
  36.  
  37.    }
  38.  
  39. /*-----------------------------------------------------------------------*/
  40. /**
  41. * Creates or Adds the logs to the XML File.
  42. * It's an internal private function.
  43. */
  44.    private function addLogs($user, $pass = 'Good Auth', $ip, $useragent)
  45.    {
  46.  
  47. if (!file_exists($this->logPath.$this->logFile)) {
  48. $xml = new SimpleXMLElement("<logdata></logdata>");
  49. } else {
  50. $xml = simplexml_load_file($this->logPath.$this->logFile);
  51. }
  52.  
  53.        $authLog = $xml->addChild('auth_log');
  54.        $authLog->addChild('user', $user);
  55.        $authLog->addChild('password', $pass);
  56.        $authLog->addChild('ip', $ip);
  57.        $authLog->addChild('user_agent', $useragent);
  58.        $authLog->addChild('date', date("d F Y - G:i:s"));
  59.        $xml->asXML($this->logPath.$this->logFile);
  60.  
  61.    }
  62. /*-----------------------------------------------------------------------*/
  63.  
  64. }
  65.  
  66. //end AuthLogger.php -- Library
  67. ?>
  68.  

En principio fue desarrollada para usarla con CodeIgniter, por lo tanto solamente hay que copiarla en la carpeta application/libraries.
Si se quiere usar sin este framework, hay que incluír la clase a vuestro script.

Modo de Uso

CodeIgniter:
Crear un array con asociativo con los siguientes valores, los índices asociativos del array no se pueden cambiar, al menos que se cambie en la librería:

Código
  1. $params = array (
  2.                        'user'      => $user,
  3.                        'pass'          => $pass',
  4.                        'ip'            => $this->session->userdata('ip_address'),
  5.                        'useragent' => $this->session->userdata('user_agent')
  6.                    );
  7.  

Donde user es el usuario que hemos recibido del formulario, pass es la contraseña e ip y useragent son la IP del posible
atacante y el useragent (que contendrá el navegador y el sistema operativo).


Después cargaremos la librería y en la misma sentencia le pasamos los parámetros:

Código
  1.       $this->load->library('AuthLogger', $params);
  2.  

Y los datos se guardarán en nuestro archivo de logs en un formato xml de la siguiente manera:

Código
  1. <?xml version="1.0"?>
  2. <logdata>
  3. <auth_log>
  4. <user>mad</user>
  5. <password>mad</password>
  6. <ip>127.0.0.1</ip>
  7. <user_agent>Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/</user_agent>
  8. <date>08 July 2011 - 22:38:51</date>
  9. </auth_log>
  10. <auth_log>
  11. <user>mad</user>
  12. <password>mad</password>
  13. <ip>0.0.0.0</ip>
  14. <user_agent>Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/</user_agent>
  15. <date>08 July 2011 - 22</date>
  16. </auth_log>
  17. <auth_log>
  18. <user>mad</user>
  19. <password>mad</password>
  20. <ip>127.0.0.1</ip>
  21. <user_agent>Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/</user_agent>
  22. <date>08 July 2011 - 22:38:51</date>
  23. </auth_log>
  24. </logdata>
  25.  

Por si este archivo cae en manos ajenas, lo mejor sería no guardar la verdadera password en el log.
Para eso, en nuestra aplicación deberíamos implementarla algo así:

Código
  1. $user = $this->input->post('user');
  2. $pass = $this->input->post('password');
  3.  
  4. if ($this->Users_model->checkUser($user, $pass)) {
  5.    //Good User Credentials
  6.  
  7.    /* AuthLog Parameters and Lib */
  8.    $params = array (
  9.        'user'      => $user,
  10.        'pass'      => 'Good Authentification',
  11.        'ip'        => $this->session->userdata('ip_address'),
  12.        'useragent' => $this->session->userdata('user_agent')
  13.    );
  14.    $this->load->library('AuthLogger', $params);
  15.    /* AuthLog Parameters and Lib */
  16.  
  17. } else {
  18.    //BAD User Credentials
  19.  
  20.    /* AuthLog Parameters and Lib */
  21.    $params = array (
  22.        'user'  => $user,
  23.        'pass'  => $pass,
  24.        'ip'    => $this->session->userdata('ip_address'),
  25.        'useragent' => $this->session->userdata('user_agent')
  26.    );
  27.    $this->load->library('AuthLogger', $params);
  28.    /* AuthLog Parameters and Lib */
  29.  
  30. }
  31.  

Simplemente, si los datos del usuario proporcionados son válidos, sobrescribir el parámetro 'pass' por un texto alternativo, también se puede aplicar al
campo del usuario, para más seguridad.

Uso sin framework:

Como ya lo he mencionado, esta librería ha sido creada con el fin de usarla junto con CodeIgniter, pero se puede usar con cualquier proyecto y framework
fácilmente. Se haría de la siguiente manera:

Código
  1.    require_once('authLogger.class.php');
  2.    $authLogger = new AuthLogger($params);
  3.  

Los parámetros son los mismos que en el caso de CodeIgniter. No olvidéis aplicar el mismo o un mecanismo de autenticación parecido al mencionado en el ejemplo de uso
con CodeIgniter, para no incluir los datos verdaderos de acceso en el registro.
642  Comunicaciones / Redes / Re: certificado de identidad en red wifi en: 9 Julio 2011, 18:27 pm
Puede ser problema del Windows. ¿Ha cambiado la contraseña del WiFi a cifrado WPA2?

Si es así, es probable que no tenga instalado el parche que soluciona la conectividad con redes que emplean cifrado WPA2, para solucionarlo hay que descargar un parche.

El documento donde explican esto, es el siguiente: Actualización de Wi-Fi Protected Access 2 (WPA2)/Wireless Provisioning Services Information Element (WPS IE) para Windows XP con el Service Pack 2.


O sino, ve al Panel de control -> Redes -> Propiedades de la red inalámbrica -> Autenticación -> Y desmarcar Habilitar el acceso a la red mediante IEEE.

Con instalar el Service Pack 3 (SP3) para Windows, debería solucionarse el problema.
643  Comunicaciones / Redes / Re: Ayuda con puertos en: 8 Julio 2011, 21:42 pm
Si el servicio que estás dando al exterior tiene fallos/bugs el sistema podrá verse comprometido.

Al igual que el mensaje que mencionas, hay que tener los servicios al día, un firewall, tal vez un IDS, etc.
644  Comunicaciones / Redes / Re: Ayuda con puertos en: 8 Julio 2011, 21:29 pm
Normalmente suele haber una tercera opción que es TCP + UDP, pero por lo visto tu router no la tiene. En ese caso tú mismo has mencionado la solución:

Citar
O es que haga 2 puerto de lo mismo solo que uno con TCP y otro con UDP.

645  Comunicaciones / Redes / Re: Ayuda con puertos en: 8 Julio 2011, 21:04 pm
Citar
4.) Protocol - El protocolo a emplear, si no estás seguro, pon tanto UDP como TCP.
No he dicho en ninguna parte que da igual. Si no lo sabes, simplemente pon los dos.
646  Comunicaciones / Redes / Re: Ayuda con puertos en: 8 Julio 2011, 20:50 pm


1.) Range Ports - Rango de puertos que quieres redirigir. Si vas a abrir los puertos para Counter Strike, por ejemplo, tendrás que redirigir el rango de 2700 a 2800.
2.) Translate To - La dirección IP local del servidor al que quieres redirigir las peticiones.
3.) Trigger Port - El puerto por el cuál el servidor está corriendo, si es un servidor web, lo más probable es que sea el puerto 80.
4.) Protocol - El protocolo a emplear, si no estás seguro, pon tanto UDP como TCP.
647  Comunicaciones / Redes / Re: Error en conexión WIFI para equipos móviles del Adsl modem zxv10 w300 ZTE en: 8 Julio 2011, 20:03 pm
Si la tiene, debería estar en la parte de Wireless.
648  Comunicaciones / Mensajería / XBomb MSN v1.4 :P- Bloquea o Kickea a tus contactos de MSN (TODAS LAS VERSIONES) en: 8 Julio 2011, 19:59 pm
El mensaje 'XBomb MSN v1.4 :P- Bloquea o Kickea a tus contactos de MSN (TODAS LAS VERSIONES)' fue bloqueado
No se permite postear este tipo de aplicaciones sino es con un fin educativo (poniendo el código fuente).
Leer reglas:
http://foro.elhacker.net/reglas
649  Programación / Desarrollo Web / Re: Utilizando upload de imagen con drag & drop en: 8 Julio 2011, 19:13 pm
¿Que navegador estás usando? Porque solo ha sido probado en Chrome 11 y Mozilla 3.6.
650  Programación / Scripting / Re: ZetaUploadScript By PiToLoKo (Manda emails con un click, sin restricciones!) en: 8 Julio 2011, 17:52 pm
De hecho lo posteaste en Windows, pero Randomize te lo movió a Programación General.


Páginas: 1 ... 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 [65] 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 ... 172
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines