Hacker AI is powered by AckViz team
Критическая уязвимость: SQL-инъекция -> Unnamed | DVWA-master/dvwa/includes/DBMS/MySQL.php:21 |
$drop_db = "DROP DATABASE IF EXISTS {$_DVWA[ 'db_database' ]};";
if( !@mysqli_query($GLOBALS["___mysqli_ston"], $drop_db ) ) {
dvwaMessagePush( "Could not drop existing database<br />SQL: " . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) );
dvwaPageReload();
}
$create_db = "CREATE DATABASE {$_DVWA[ 'db_database' ]};";
if( !@mysqli_query($GLOBALS["___mysqli_ston"], $create_db ) ) {
dvwaMessagePush( "Could not create database<br />SQL: " . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) );
dvwaPageReload();
}
dvwaMessagePush( "Database has been created." );
Критическая уязвимость: SQL-инъекция | |
---|---|
CWE ID | CWE-89: SQL Injection |
Description | В данном коде содержится критическая уязвимость, связанная с SQL-инъекцией. Переменная $_DVWA['db_database'] используется без предварительной проверки и экранирования, что может привести к выполнению произвольных SQL-запросов. |
Remediation | Для предотвращения SQL-инъекций необходимо использовать подготовленные выражения (prepared statements) и параметризованные запросы. Также рекомендуется проводить валидацию и экранирование входных данных. |
Хранение паролей в незашифрованном виде -> Unnamed | DVWA-master/dvwa/includes/DBMS/MySQL.php:50 |
$base_dir= str_replace ("setup.php", "", $_SERVER['SCRIPT_NAME']);
$avatarUrl = $base_dir . 'hackable/users/';
$insert = "INSERT INTO users VALUES
('1','admin','admin','admin',MD5('password'),'{$avatarUrl}admin.jpg', NOW(), '0'),
('2','Gordon','Brown','gordonb',MD5('abc123'),'{$avatarUrl}gordonb.jpg', NOW(), '0'),
('3','Hack','Me','1337',MD5('charley'),'{$avatarUrl}1337.jpg', NOW(), '0'),
('4','Pablo','Picasso','pablo',MD5('letmein'),'{$avatarUrl}pablo.jpg', NOW(), '0'),
('5','Bob','Smith','smithy',MD5('password'),'{$avatarUrl}smithy.jpg', NOW(), '0');";
if( !mysqli_query($GLOBALS["___mysqli_ston"], $insert ) ) {
dvwaMessagePush( "Data could not be inserted into 'users' table<br />SQL: " . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) );
dvwaPageReload();
}
dvwaMessagePush( "Data inserted into 'users' table." );
Хранение паролей в незашифрованном виде | |
---|---|
CWE ID | CWE-916: Use of Password Hash Instead of Password for Authentication |
Description | В данном коде пароли пользователей хранятся в виде хешей MD5, что является критической уязвимостью, так как MD5 легко подвержен атакам перебора и коллизий. |
Remediation | Используйте современные и безопасные методы хеширования паролей, такие как bcrypt, Argon2 или scrypt, и добавьте соль к паролям для усиления безопасности. |