Перейти к содержанию

JP1223C

Проверка вызовов команд через системную оболочку shell

Static Badge Static Badge

Static Badge


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

Пример небезопасного использования

1
2
3
4
import os

def your_echo(input: str):
    os.system(f"/bin/echo {input}")

Проверяемые методы

  • os.system
  • os.popen
  • os.popen2
  • os.popen3
  • os.popen4
  • popen2.popen2
  • popen2.popen3
  • popen2.popen4
  • popen2.Popen3
  • popen2.Popen4
  • commands.getoutput
  • commands.getstatusoutput
  • subprocess.getoutput
  • subprocess.getstatusoutput

Дополнительная информация