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)
Описание: Использование функции shell_exec
с неконстантными аргументами может привести к уязвимости типа "внедрение команд". Это позволяет злоумышленнику выполнять произвольные команды на сервере.
Критичность: Critical
Исправление
-
Использование безопасных функций:
- Замените
shell_exec
на более безопасные альтернативы, такие какescapeshellcmd
илиescapeshellarg
, если необходимо передать пользовательские данные в команду.
Пример безопасного кода:
$target = str_replace(array_keys($substitutions), $substitutions, $target); $target = escapeshellcmd($target); echo shell_exec($target);
- Замените
-
Валидация и очистка входных данных:
- Перед использованием данных в командах проверяйте их на наличие потенциально опасных символов и конструкций.
Пример валидации:
function validateInput($input) { // Пример простой валидации if (preg_match('/[^a-zA-Z0-9\s]/', $input)) { return false; } return true; } if (validateInput($_GET["typeBox"])) { $target = str_replace(array_keys($substitutions), $substitutions, $target); echo shell_exec($target); } else { echo "Invalid input"; }
-
Использование параметризованных запросов или альтернативных методов:
- Если возможно, используйте параметризованные запросы или другие методы, которые не требуют выполнения команд через
shell_exec
.
- Если возможно, используйте параметризованные запросы или другие методы, которые не требуют выполнения команд через
Дополнительная информация
- CWE-94: https://cwe.mitre.org/data/definitions/94.html
- OWASP Injection: A03:2021 - Injection
Шаги для исправления
- Проанализировать все места использования
shell_exec
и других функций выполнения команд. - Внедрить валидацию и очистку входных данных перед их использованием в командах.
- Рассмотреть возможность использования безопасных альтернатив или параметризованных запросов.
Описание:
Executing non-constant commands. This can lead to command injection.Исходный JSON:
{
"id": "4d244f27e3c8d8da6b58156e236907a243b1815f38dd25e2c9260744e82596ef",
"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": "repo/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"
}
]
}
```