Уязвимость в PHP Code Injection существует даже после рекомендуемой защиты - PullRequest
0 голосов
/ 25 декабря 2018

Используя Burp для перехвата трафика и внедрения кода, мы выявили уязвимость удаленного выполнения кода на веб-сайте. После ввода данных в поля ввода в форме и нажатия кнопки «Отправить» трафик был перехвачен, и в запрос были добавлены следующие команды в значении:поля ввода% 27% 2bsystem (% 22id% 22)% 2b% 27 Чтобы исправить это, мы выполнили рекомендуемое усиление 1. Во всех полях ввода мы выполнили очистку ввода. Мы допустили только цифры и установили ограничение наколичество цифр разрешено.Мы также использовали такие функции, как htmlspecialchars, escapeshellcmd, escapeshellargs и т. Д.

Это не помогло.

Поэтому, когда мы смогли перехватить трафик и ввести системную команду, мы проверили идентификатор пользователя и удалили доступ оболочки для этого идентификатора пользователя. В etc / passwd для этого пользователя это был / bin / bash, мы удалили доступ и убедились, чтоон был обновлен до / bin / false для этого пользователя

Это также не помогло

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

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

Мы использовали disable_functions в php.ini, чтобы отключить большинство рекомендуемых функций, таких как exec, system и т. д. Перезапустили httpd, я надеялся, что эторешить проблему, но проблема остается

Сейчас мы планируем попробовать удалить разрешение на выполнение в / usr / bin для всех пользователей, кроме root.

Это хорошая вещь, будет ли это ограничивать системные команды, выполняемые владельцем-пользователем сайта

Не могли бы вы сообщить мне, если есть что-то еще, что яможно попробовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...