Практика
Локальное включение файлов ( также известное как LFI ) - это процесс включения файлов на сервер через веб-браузер. Эта уязвимость возникает, когда включение страницы не очищено должным образом и позволяет вводить символы обхода каталога. Типичный пример PHP-скрипта, уязвимого для LFI, выглядит следующим образом:
<?php $file = $_GET['file']; if(isset($file)) { include("pages/$file"); } else { include("index.php"); } ?>
Законный запрос к скрипту может выглядеть так:
http://example.com/index.php?file=contactus.php
Это бесполезно для потенциального злоумышленника, который с большей вероятностью будет интересоваться файлами вне каталога pages /. Для этого злоумышленник может использовать LFI. Простейшим примером будет:
http://example.com/index.php?file=../../../../etc/passwd
В системе * nix это будет показывать хэши всех паролей на сервере, которые впоследствии могут быть взломаны и использованы для получения доступа к файлам.
Большинство хороших администраторов будут защищены от самых простых атак LFI, поэтому мы должны соответствующим образом обновить скрипт примера.
<?php $file = str_replace('../', '', $_GET['file']); if(isset($file)) { include("pages/$file"); } else { include("index.php"); } ?>
Теперь наша простая атака LFI больше не будет работать. Очевидно, что мы не хотим, чтобы это сдерживало нас, поэтому нам нужно найти способ, чтобы наш обход каталога работал, избегая фильтров. Один из способов сделать это - закодировать один или несколько символов в шестнадцатеричное. Это работает, потому что браузер декодирует ввод, а PHP - нет. Наш новый LFI будет:
http://example.com/index.php?file=..%2F..%2F..%2F..%2Fetc%2Fpasswd
Атаки LFI часто сочетаются с атаками Poison Null Byte , что помогает им обходить другие средства защиты, которые могут быть установлены.
Комментарии
Оставить комментарий
информационная безопасность - Криптография и Криптоанализ. Стеганография. Защита Информации
Термины: информационная безопасность - Криптография и Криптоанализ. Стеганография. Защита Информации