sábado, 8 de octubre de 2011

Evitar RFI y LFI!

Bueno me he decidido hacer este tuto porque a veces me llegan mensajes de admins desesperados que no saben que hacer cuando se les presenta una vulnerabilidad tipo RFI o LFI en su página web, tranquilos, no es el fin del mundo (o si jaja :P).


RFI


Como evitar vulnerabilidad RFI...


Bueno lo primero sera dejar atras el anticuado include y pasarnos a swicht.
La sentencia switch es como muchos if's juntos cada uno se separa por un case (parecido a C)
En ejemplo:


<?php
switch ($i) {
    case 0:
        echo "i es igual a 0";
        break;
    case 1:
        echo "i es igual a 1";
        break;
    case 2:
        echo "i es igual a 2";
        break;
}
?>

Eso vendria a significar...

Si la variable i :                   swicht ($i) {
   Es igual a 0 :                         case 0:
   Imprimir i es igual a 0 :            echo 'I es igual a 0';
                                               
Y los demas asi es como funciona swicht ahora apliquemoslo a invulnerabilizar RFI.
Codigo en php:     (esto solo es una tecnica de las muchas que hay de
evitar RFI)

<?php
 switch($id) {
   default:
     include('index.php');
     break;  
   case "link":
     include('link.php');
     break;  
   case "otro-link.php":
     include('otro-link.php');
 }
?>
Expliquemos ese codigo...
Mas o menos pueden hacerse una idea de como funciona ese codigo en php
Si en el id (variable de donde se seleccionan las paginas en php) se selecciona 'link' incluir en esa variable link.php y asi con los demas, menos en default que le dice a php que si no existe ninguna opcion vaya a index.php




LFI


Como evitar vulnerabilidad LFI

Aqui como antes es utilizar swicht y es el mismo codigo que antes

<?php
switch($id) {
    default:
   include('index.php.php');
  break;  case "link":
   include('link.php');
  break;  case "otro-link.php":
   include('otro-link.php');
 }
?>

Señores,siglo XXI, dejemos atras el clasico:


<?php
$variable $_GET['variable'];
include($variable);
?>

Que solo traia owneds y demás cosas...


Un saludo y espero que les haya gustado!!

No hay comentarios:

Publicar un comentario