Используя 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, я надеялся, что это решит проблему, но проблема все еще существует
Мы также использовали другие директивы, такие как Session cookie secure, Cookie httponly, session.referer_check, session.use_strict_mode и т. Д., Но все тщетно
Не могли бы вы дать мне знать, есть ли что-нибудь еще, что я могу попробовать?
Задача ещё не решена.
Других решений пока нет …