Vander
Команда форума
- 10.11.2019
- 472
- 1 083
Приветствую уважаемую аудиторию форума Protey!
В этом разделе мы объясним, что такое OS command injection, опишем, как уязвимости можно обнаруживать и использовать, приведем примеры некоторых полезных команд и методы для различных операционных систем, а также разберемся, как предотвратить внедрение команд ОС.
Что такое OS command injection?
OS command injection (также известное как command injection) - это уязвимость веб-безопасности, которая позволяет злоумышленнику выполнять произвольные команды операционной системы (ОС) на сервере, на котором выполняется приложение, и обычно полностью скомпрометировать приложение и все его данные. Очень часто злоумышленник может использовать уязвимость OS command injection, чтобы скомпрометировать другие части инфраструктуры хостинга, используя доверительные отношения для поворота атаки на другие системы в организации.
Рассмотрим приложение для покупок, которое позволяет пользователю увидеть, есть ли товар на складе в конкретном магазине. Доступ к этой информации осуществляется через URL-адрес, например:
Код:
stockreport.pl 381 29
Поскольку приложение не реализует никакой защиты от внедрения команды ОС, злоумышленник может отправить следующий ввод для выполнения произвольной команды:
Код:
& echo aiwefwlguh &
Код:
stockreport.pl & echo aiwefwlguh & 29
Результат, возвращаемый пользователю:
Код:
Error - productID was not provided
aiwefwlguh
29: command not found
- Исходная команда stockreport.pl была выполнена без ожидаемых аргументов, и поэтому вернула сообщение об ошибке.
- Инжектированная команда echo была выполнена, и предоставленная строка была отражена в выводе.
- Первоначальный аргумент 29 был выполнен как команда, что вызвало ошибку.
Полезные команды
Когда вы определили уязвимость, приводящую к внедрению команд ОС, обычно полезно выполнить некоторые начальные команды для получения информации о скомпрометированной системе. Ниже приведено краткое описание некоторых команд, которые работают на платформах Linux и Windows:
Purpose of command | Linux | Windows |
---|---|---|
Name of current user | whoami | whoami |
Operating system | uname -a | ver |
Network configuration | ifconfig | ipconfig /all |
Network connections | netstat -an | netstat -an |
Running processes | ps -ef | tasklist |
Практический пример
В этой лабораторной работе содержится уязвимость, связанная с внедрением команд ОС в средство проверки наличия продукта.
Приложение выполняет шелл команду, содержащую предоставленные пользователем идентификаторы продукта и магазина, и возвращает необработанный вывод команды в своем ответе.
Чтобы решить лабораторную работу, выполните команду whoami, чтобы определить имя текущего пользователя.
Находим уязвимый параметр и отправляем модифицированный запрос:
В следующей публикации, рассмотрим Blind OS command injection уязвимости.
Спасибо за внимание, материал подготовлен специально для protey.net.