Практика
Полное раскрытие пути (FPD) - это раскрытие полного рабочего пути уязвимого сценария. Ошибка FPD выполняется путем введения неожиданных символов в определенные параметры веб-страницы. Сценарий не ожидает вставленный символ и возвращает сообщение об ошибке, которое включает информацию об ошибке, а также рабочий путь целевого сценария.
Уязвимости FPD обычно рассматриваются как угрозы низкого риска, которые веб-мастера часто упускают из виду, так как им нечего беспокоиться или какие-либо особенности языка сценариев. Хотя последнее верно, только веб-мастер должен видеть вывод сообщений об ошибках и регистрировать их соответствующим образом; злоумышленник никогда не должен видеть вывод сообщения об ошибке на веб-странице.
Низкий до среднего (косвенный).
Экстремально высокий.
Хотя уязвимости FPD обычно воспринимаются как низкий риск, они часто могут использоваться в сочетании с другими методами эксплуатации и могут означать разницу между успешным взломом и провалом.
Одним из примеров таких отношений может быть использование уязвимости LFI в партнерстве с FPD. Только с помощью LFI (будь то с помощью обычного метода include или с помощью SQL-инъекции с помощью load_file ()) злоумышленник может быть не в состоянии найти папку, содержащую файл конфигурации, который он хочет просмотреть, или, возможно, стандарт включает в себя папки ) ха [с | ве] был переименован.
Если злоумышленник может вызвать ошибку, которая выведет местоположение важного файла или папки, он может прочитать содержимое файла конфигурации SQL и, в свою очередь, получить полный доступ к базе данных.
Хотя FPD обычно используются в сочетании с другими методами атаки, иногда они могут быть все, что нужно злоумышленнику для получения доступа к базе данных или серверу. Примером этого может быть использование веб-приложения с плоскими файлами. Веб-приложение может быть уязвимо для раскрытия полного пути, который отражает местоположение базы данных плоских файлов; это может включать административную информацию, такую как пароли панели администрирования, адреса электронной почты или пароли пользователей.
Полное раскрытие пути является результатом того, что в скрипте отсутствует система управления ошибками. Они являются функцией языка программирования, предназначенной для устранения ошибок, возникающих в течение жизненного цикла скрипта. FPD можно выполнить, просто введя ввод, который сценарий не знает, как обрабатывать.
Array [] Ввод параметров возможен, когда сценарий разрабатывает вызов с помощью параметра $ _GET. Если параметр $ _GET обернут в функцию, которая ожидает строку - например, htmlentities () или opendir () - но получает массив, это приведет к сообщению об ошибке. Вывод сообщения об ошибке будет выглядеть следующим образом:
Предупреждение: htmlentities () ожидает, что параметр 1 будет строкой, а массив указан в /var/www/foobar.php в строке 16
Поскольку функция ожидает, что этот параметр будет строкой, результат данного массива будет представлять вызов параметра как несуществующий, выводя только ошибку из функции.
Незаконное внедрение сеанса стало возможным благодаря изменению значения cookie сеанса на недопустимый или недопустимый символ. Существует много символов для инъекций, которые приведут к выводу рабочего пути, но наиболее распространенными и наиболее широко (не) поддерживаемыми являются нулевые символы; ничего не делая cookie Чтобы внедрить файл cookie PHPSESSID, используйте JavaScript-инъекцию через строку URL:
javascript : void ( document. cookie = "PHPSESSID =" ) ;
После выполнения инъекции требуется обновление страницы. Если внедрение прошло успешно, это приведет к сообщению об ошибке, похожему на следующее:
Предупреждение: session_start () [function.session-start]: идентификатор сессии содержит недопустимые символы, допустимые символы - это az, AZ, 0-9 и '-,' в /var/www/foobar.php в строке 3
Поскольку функция session_start () не ожидает недопустимых символов, она выдает предупреждение, что приводит к раскрытию полного пути.
Разработчикам веб-приложений иногда не удается добавить безопасные проверки в файлы, для которых требуются предварительно загруженные файлы библиотеки / функции. Это может привести к раскрытию возможной конфиденциальной информации при прямом запросе URL-адресов этих приложений. Иногда это ключ к уязвимости локального включения файлов.
Что касается Mambo CMS, если мы получим доступ к прямому URL, http://site.com/mambo/mambots/editors/mostlyce/jscripts/tiny_mce/plugins/spellchecker/classes/PSpellShell.php , то мы получим
<br /> <b> Неустранимая ошибка </ b>: класс «SpellChecker» не найден в <b> /home/victim/public_html/mambo/mambots/editors/mostlyce/jscripts/tiny_mce/plugins/spellchecker/classes/PSpellShell.php </ b> в строке <b> 9 </ b> <br />
Этот вид проверки может быть легко выполнен разработчиками с помощью инструмента inspathx .
Предотвратить инъекцию FPD без системы обработки / управления ошибками так же просто, как отключить отображение сообщений об ошибках. Это можно сделать в файле PHP php.ini, в файле Apache httpd.conf или через сам скрипт PHP:
php.ini:
display_errors = 'off'
httpd.conf / apache2.conf:
php_flag display_errors off
PHP скрипт:
ini_set ( 'display_errors' , false ) ;
В случае внедрения параметра array [] использование PHP-функции is_array () может использоваться для обработки внедрения и регистрации попытки в желаемый файл или базу данных:
( isset ( $ var ) && is_array ( $ var ) ) ? logfunction ( ) : / * продолжить * / ;
В случае неоперабельного внедрения сеанса использование регулярных выражений может использоваться для фильтрации недопустимых значений сеанса от внедрения. Проверка на наличие символов, отличных от az, AZ, 0-9 и '-,', позволит попытке раскрытия войти в нужный файл или базу данных.
Хотя раскрытие полного пути - это удобный метод разведки, который можно использовать в ситуациях для успешного завершения, весьма маловероятно, что сама по себе уязвимость приведет к успешному взлому.
Есть очень редкие случаи, когда уязвимость может использоваться как единственная техника для успешного проникновения на веб-сайт. Чтобы это имело место, методы обеспечения безопасности веб-мастера должны быть очень плохими, например, использование баз плоских файлов или плохие расширения, такие как файлы .inc или .txt.
Уязвимость в большинстве случаев используется как метод разведки, используемый для сбора информации о цели.
Комментарии
Оставить комментарий
информационная безопасность - Криптография и Криптоанализ. Стеганография. Защита Информации
Термины: информационная безопасность - Криптография и Криптоанализ. Стеганография. Защита Информации