Фильтрация при инклуде

Discussion in 'Песочница' started by jangle, 14 Dec 2011.

  1. jangle

    jangle Member

    Joined:
    19 Nov 2006
    Messages:
    123
    Likes Received:
    6
    Reputations:
    6
    есть запрос
    Выдает ответ
    А вот сама фильтрация в файле index.php
    PHP:
        $file str_replace("http://","",$file);
        
    $file str_replace("ftp://","",$file);
        
    $file str_replace("://","",$file);
        
    $file str_replace(chr(0),"",$file);
        
    $file str_replace("../","",$file);
        
    $file str_replace("./","",$file);
        
    $file str_replace("%","",$file);
        if (
    strpos($file,".html") === FALSE) {
            
    $file .= ".html";
        }
    Кроме того при обработке file фильтруется
    PHP:
                $theValue = str_replace(";","",$theValue);    
                $theValue = str_replace("<?","",$theValue);
                $theValue = str_replace("?>","",$theValue);
                $theValue = htmlentities($theValue);
    Это как то можно обойти и заинклудить файл?

    Мои благодарности!!!
     
  2. Чакэ

    Чакэ Elder - Старейшина

    Joined:
    15 Aug 2010
    Messages:
    260
    Likes Received:
    66
    Reputations:
    62
    никак. тут, хоть и по быдляцки организованная, но всё же, фильтрация есть на конец файла что будет инклудится. выйти на пределы папки можно используя ...../// а вот расширение не отбросить.
     
    #2 Чакэ, 15 Dec 2011
    Last edited: 15 Dec 2011
    2 people like this.
  3. jangle

    jangle Member

    Joined:
    19 Nov 2006
    Messages:
    123
    Likes Received:
    6
    Reputations:
    6
    По папкам перебераться научился.

    При запросе

    а при
    выдает default.html в корневой директории.

    Но вот как отрезать .html
    Пробовал слеши.

    при запросе
    дает
    если слешей меньше - просто говорит что не найден файл(((

    Может кто подскажет как откинуть хвост?
    Спасибо
     
  4. jangle

    jangle Member

    Joined:
    19 Nov 2006
    Messages:
    123
    Likes Received:
    6
    Reputations:
    6
    To Чакэ
    Спасибо большое
    Пока писал пост - ты ответил.
     
  5. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,149
    Reputations:
    886
    если научился перебратся по папкам, тогда .html легко вырезать, в коде же написано, если в имени файла есть .html , то добавлятся не будет в конце, то есть можешь использовать .html Например как имя папки, а потом выйти за его пределы
     
    _________________________
    1 person likes this.
  6. jangle

    jangle Member

    Joined:
    19 Nov 2006
    Messages:
    123
    Likes Received:
    6
    Reputations:
    6
    To Konqi

    ПОЖАЛУЙСТА покажи как на моих примерах выше. Суть не могу уловить
     
    #6 jangle, 15 Dec 2011
    Last edited by a moderator: 15 Dec 2011
  7. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,149
    Reputations:
    886

    $file = '/папка/.html/[выйти_за_пределы_папки_.html]/а_тут_что_хочешь'

    в этом случий в конце не будет добавлено .html, так как условие if (strpos($file,".html") == FALSE)) НЕ выполняется
     
    _________________________
    3 people like this.
  8. jangle

    jangle Member

    Joined:
    19 Nov 2006
    Messages:
    123
    Likes Received:
    6
    Reputations:
    6
    Ура получилось

    To Konqi
    ты просто ГЕНИЙ!!!!!!!!!!!
     
    1 person likes this.
  9. aydin-ka

    aydin-ka Elder - Старейшина

    Joined:
    3 May 2009
    Messages:
    316
    Likes Received:
    98
    Reputations:
    29
    Я конечно в этом плохо разбираюсь...а можно "пойти" через протокол DATA :confused: например так:
    http://site.ru/index.php?id=data:,<?php eval ($_REQUEST[cmd]); ?>&cmd=../../../../../../etc/passwd
     
    1 person likes this.
  10. Boolean

    Boolean Elder - Старейшина

    Joined:
    5 Sep 2010
    Messages:
    147
    Likes Received:
    83
    Reputations:
    78
    Не неси чушь.
     
    1 person likes this.