Vulnerable-Web-Application CVE semgrep_id:PHPCS_SecurityAudit.BadFunctions.SystemExecFunctions.WarnSystemExec:25:25
Improper control of generation of code ('Code Injection')
Ссылка на строку:
Описание уязвимости
Тип: Code Injection (CWE-94)
Серьёзность: Критическая
Категория: SAST
Имя: Improper control of generation of code ('Code Injection')
Описание: Выполнение неконстантных команд может привести к внедрению команд.
Уязвимый код
if(isset($_GET["username"])){
echo shell_exec($_GET["username"]);
if($_GET["username"] == "Admin" && $_GET["password"] == "ufoundmypassword")
}
Варианты исправления
-
Использование безопасных функций для работы с пользовательским вводом:
-
Безопасное обращение с данными: избегайте прямого использования данных, полученных из
$_GET
, в функциях, выполняющих команды.
if (isset($_GET["username"]) && $_GET["username"] == "Admin" && $_GET["password"] == "ufoundmypassword") { echo "Добро пожаловать, администратор!"; } else { echo "Доступ запрещён."; }
-
Безопасное обращение с данными: избегайте прямого использования данных, полученных из
-
Валидация и очистка входных данных:
- Проверка и фильтрация: перед использованием данных в опасных функциях, убедитесь, что они соответствуют ожидаемому формату и не содержат вредоносного кода.
function validateInput($input) { // Пример простой валидации return !preg_match('/[^a-zA-Z0-9]/', $input); } if (isset($_GET["username"]) && validateInput($_GET["username"])) { if ($_GET["username"] == "Admin" && $_GET["password"] == "ufoundmypassword") { echo "Добро пожаловать, администратор!"; } else { echo "Неверное имя пользователя или пароль."; } } else { echo "Неверный ввод."; }
Ссылки на статьи
Описание:
Executing non-constant commands. This can lead to command injection.Исходный JSON:
{
"id": "38a726e0c0fbdb911d48bceeec5d2c1ceb414bcc666e861a61b8de5336fbcc2f",
"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:25:25",
"severity": "Critical",
"scanner": {
"id": "semgrep",
"name": "Semgrep"
},
"location": {
"file": "repo/CommandExecution/CommandExec-1.php",
"start_line": 25
},
"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"
}
]
}
```