Локальный инклуд позволяет хакеру загружать в браузер и просматривать файлы на сервере.
допустим http://test.ru/index.php?page=./.....sswd%00
И у вас откроется данный файл скорее всего.
./ -текущий каталог
../- переход на уровень выше
%00 - шестнадцатеричный код для передачи по протоколу HTTP Нулевого байта (конец строки). - про HTTP можно прочитать в книге PHP Д. Н. Колисниченко хорошо рассказываться история HTTP приводит разницу между C и PHP.
Теперь давайте экспериментировать.
Запускаем нашу уязвимую машину damn vulnerable linux
создадим файл в каталоге /usr/local/apache/htdocs/ с названием include.php (если у вас стоит другая ОС киньте этот файл в каталог /var/www/ в ваш локальный хост)
код include.php:
?1
2 $page = ($_GET['page']);
include ("./$page.php");
Теперь открываем браузер и вводим команду http://localhost/include.php?page=./.&...sswd%00
Если у вас выведиться ошибка warning : main (././../../etc/passwd) ….. и так далее, попробуйте добавить ещё ../ в адресс браузера то есть http://localhost/include.php?page=./.&...sswd%00 до тех пор пока у вас неотобразиться файл passwd с логинами теперь вместо passwd напишите shadow и у вас отобразяться пароли точнее - хеши паролей (необратимо преобразованный) потом находите через поискових подбор хеш паролей и все ну как все подождёте если в базе будет он то нойдет если нет ищите другой сервис. вообщем это только начало. и ваш первый небольшой взлом. если на сервере установлен ssh то можно найти доступ к ниму и потом что хотите делайте. на компе жертвы
Пример php инклуда или веб-шелл в картинке.
Для примера рассмотрим форум в котором есть баг, рассмотренный в статье локальный инклуд, и для того чтобы его взломать вам потребуется небольшая gif картинка, и с помощью двоичного редактора добавляем следующий код
?1 <pre></pre>
можно конечно же просто вставить код в текстовый редактор и сохранить его как image.gif, но на некоторых сайтах есть проверка является ли данная картинка картинкой.
Теперь напишем в адресной строки следующие:
выводиться что находиться в данной категории.
допустим http://test.ru/index.php?page=./.....sswd%00
И у вас откроется данный файл скорее всего.
./ -текущий каталог
../- переход на уровень выше
%00 - шестнадцатеричный код для передачи по протоколу HTTP Нулевого байта (конец строки). - про HTTP можно прочитать в книге PHP Д. Н. Колисниченко хорошо рассказываться история HTTP приводит разницу между C и PHP.
Теперь давайте экспериментировать.
Запускаем нашу уязвимую машину damn vulnerable linux
создадим файл в каталоге /usr/local/apache/htdocs/ с названием include.php (если у вас стоит другая ОС киньте этот файл в каталог /var/www/ в ваш локальный хост)
код include.php:
?1
2 $page = ($_GET['page']);
include ("./$page.php");
Теперь открываем браузер и вводим команду http://localhost/include.php?page=./.&...sswd%00
Если у вас выведиться ошибка warning : main (././../../etc/passwd) ….. и так далее, попробуйте добавить ещё ../ в адресс браузера то есть http://localhost/include.php?page=./.&...sswd%00 до тех пор пока у вас неотобразиться файл passwd с логинами теперь вместо passwd напишите shadow и у вас отобразяться пароли точнее - хеши паролей (необратимо преобразованный) потом находите через поискових подбор хеш паролей и все ну как все подождёте если в базе будет он то нойдет если нет ищите другой сервис. вообщем это только начало. и ваш первый небольшой взлом. если на сервере установлен ssh то можно найти доступ к ниму и потом что хотите делайте. на компе жертвы
Пример php инклуда или веб-шелл в картинке.
Для примера рассмотрим форум в котором есть баг, рассмотренный в статье локальный инклуд, и для того чтобы его взломать вам потребуется небольшая gif картинка, и с помощью двоичного редактора добавляем следующий код
?1 <pre></pre>
можно конечно же просто вставить код в текстовый редактор и сохранить его как image.gif, но на некоторых сайтах есть проверка является ли данная картинка картинкой.
Теперь напишем в адресной строки следующие:
Вам необходимо зарегистрироваться для просмотра ссылок
выводиться что находиться в данной категории.