Что нового

Article [11] Burp Suite. OS command injection

Vander 0

Vander

Команда форума
10.11.2019
472
1 083
Приветствую уважаемую аудиторию форума Protey!

command-injection-1024x538.png

В этом разделе мы объясним, что такое OS command injection, опишем, как уязвимости можно обнаруживать и использовать, приведем примеры некоторых полезных команд и методы для различных операционных систем, а также разберемся, как предотвратить внедрение команд ОС.

Что такое OS command injection?

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


os-command-injection_1.png

Выполнение произвольных команд

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

Код:
stockreport.pl 381 29
Эта команда выводит состояние на складе для указанного элемента, который возвращается пользователю.

Поскольку приложение не реализует никакой защиты от внедрения команды ОС, злоумышленник может отправить следующий ввод для выполнения произвольной команды:

Код:
& echo aiwefwlguh &
Если эти входные данные передаются в параметре productID, то команда, выполняемая приложением выглядит так:

Код:
stockreport.pl & echo aiwefwlguh & 29
Команда echo просто приводит к тому, что переданная строка выводится в результат, и является полезным способом проверки некоторых типов внедрения команд ОС. Символ & является разделителем шелл команд, и поэтому выполняются фактически три отдельные команды: за другим.

Результат, возвращаемый пользователю:

Код:
Error - productID was not provided
aiwefwlguh
29: command not found
Три строки вывода демонстрируют, что:
  • Исходная команда stockreport.pl была выполнена без ожидаемых аргументов, и поэтому вернула сообщение об ошибке.
  • Инжектированная команда echo была выполнена, и предоставленная строка была отражена в выводе.
  • Первоначальный аргумент 29 был выполнен как команда, что вызвало ошибку.
Размещение дополнительного разделителя команд & после введенной команды, как правило, полезно, потому что она отделяет введенную команду от того, что следует за точкой ввода, что снижает вероятность того, что последующее будет препятствовать выполнению введенной команды.

Полезные команды

Когда вы определили уязвимость, приводящую к внедрению команд ОС, обычно полезно выполнить некоторые начальные команды для получения информации о скомпрометированной системе. Ниже приведено краткое описание некоторых команд, которые работают на платформах Linux и Windows:

Purpose of commandLinuxWindows
Name of current userwhoamiwhoami
Operating systemuname -aver
Network configurationifconfigipconfig /all
Network connectionsnetstat -annetstat -an
Running processesps -eftasklist

Практический пример

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

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

Чтобы решить лабораторную работу, выполните команду whoami, чтобы определить имя текущего пользователя.

Находим уязвимый параметр и отправляем модифицированный запрос:

1592747076588.png

Получаем ответ от сервера, с результатом выполненной команды whoami:

1592747148537.png

В следующей публикации, рассмотрим Blind OS command injection уязвимости.

Спасибо за внимание, материал подготовлен специально для protey.net.
 
J 0

JordanGlymn

New Member
04.02.2021
1
1
В этом что-то есть. Большое спасибо за информацию. Очень рад.
 
Верх Низ