Vulnerable-Web-Application CVE semgrep_id:PHPCS_SecurityAudit.BadFunctions.SystemExecFunctions.WarnSystemExec:39:39
Improper control of generation of code ('Code Injection')
Ссылка на строку:
Описание уязвимости
Тип: Code Injection (CWE-94)
Описание: Выполнение неконстантных команд может привести к внедрению команд (Command Injection).
Уровень критичности: Критический
Файл: CommandExecution/CommandExec-3.php
Строка: 39
Проблема
В строке echo shell_exec($target);
используется функция shell_exec
, которая выполняет команду, переданную в качестве аргумента. Если $target
формируется на основе данных, полученных от пользователя, это может привести к выполнению произвольных команд.
Варианты исправления
-
Использование безопасных альтернатив:
- Вместо
shell_exec
можно использовать функции, которые не выполняют команды, например,escapeshellarg
для экранирования аргументов.
$target = str_replace(array_keys($substitutions), $substitutions, $target); $target = escapeshellarg($target); echo $target;
- Вместо
-
Валидация и очистка входных данных:
- Перед использованием данных, полученных от пользователя, необходимо провести их валидацию и очистку.
if (isset($_GET['typeBox']) && $_GET['typeBox'] == 'flag') { // Валидация и очистка данных $typeBox = filter_input(INPUT_GET, 'typeBox', FILTER_SANITIZE_STRING); // Дальнейшая обработка }
-
Использование параметризованных запросов:
- Если возможно, используйте параметризованные запросы или другие безопасные методы для работы с данными.
Дополнительная информация
Описание:
Executing non-constant commands. This can lead to command injection.Исходный JSON:
{
"id": "8e91dc9650e8bd863bc50ae73b0704ecf8598b67048d9e98a32bb4bc424c29a2",
"category": "sast",
"name": "Improper control of generation of code ('Code Injection')",
"description": "Executing non-constant commands. This can lead to command injection.",
"cve": "semgrep_id:PHPCS_SecurityAudit.BadFunctions.SystemExecFunctions.WarnSystemExec:39:39",
"severity": "Critical",
"scanner": {
"id": "semgrep",
"name": "Semgrep"
},
"location": {
"file": "CommandExecution/CommandExec-3.php",
"start_line": 39
},
"identifiers": [
{
"type": "semgrep_id",
"name": "PHPCS_SecurityAudit.BadFunctions.SystemExecFunctions.WarnSystemExec",
"value": "PHPCS_SecurityAudit.BadFunctions.SystemExecFunctions.WarnSystemExec"
},
{
"type": "cwe",
"name": "CWE-94",
"value": "94",
"url": "https://cwe.mitre.org/data/definitions/94.html"
},
{
"type": "owasp",
"name": "A03:2021 - Injection",
"value": "A03:2021"
},
{
"type": "owasp",
"name": "A1:2017 - Injection",
"value": "A1:2017"
},
{
"type": "phpcs_security_audit_source",
"name": "PHPCS Security Audit Test ID PHPCS_SecurityAudit.BadFunctions.SystemExecFunctions.WarnSystemExec",
"value": "PHPCS_SecurityAudit.BadFunctions.SystemExecFunctions.WarnSystemExec"
}
]
}
```