💩OS command injection - также известна как shell-инъекция. Она позволяет злоумышленнику выполнить команды операционной системы (ОС) на сервере, на котором запущено приложение, встраиваясь в элементы запроса, использующие такие команды в своем функционале.
💩Тип:
Web, Server-Side.
В целом можно поделить на:
- 💩Видимые - результат эксплуатации приходит в виде ответов приложения или иным способом отображается в приложении.
- 💩Слепые - результат эксплуатации не виден нарямую. Для тестирования эксплуатабельности используются временные задержки или схожие механизмы.
💩Пример полезной нагрузки:
https://example.com/store?id=1|whoami
💩Влияние:
Чаще всего обнаружение такой уязвимости ведет к удаленному исполнению кода (RCE), что почти гарантированно ведет к компрометации системы.
💩Как защититься?
Самый простой и эффективный способ - не использовать вызовы системных команд в прикладном функционале приложения. Если все же такая необходимость есть (хотя почти во всех случаях это можно сделать иначе), необходимо использовать строгую валидацию пользовательских данных - использовать белые списки, проверки по типу данных, проверки отсутствия специальных символов.
В реальных приложениях я давненько не встречал такие уязвимости в чистом виде. Если они и попадались, то были достаточно хорошо спрятаны. Тем не менее, это не значит, что от них не нужно защищаться и их не стоит искать - обнаружение такой уязвимости - почти гарантированный ключ к победе (вашей или над вами🙃)
#edu #vuln #web #command_injection



