Source code
vulnerability

report

Hacker AI is powered by AckViz team



Analysis of project_name

Automated systems can produce false negatives; manual analysis by a cybersecurity expert is vital for distinguishing false negatives, especially in business-sensitive contexts. Click here to arrange a brief meeting with a specialist who can assist you in these tasks and perform a more in-depth static and dynamic analysis. Join our Discord server to get in touch with our team.
2023-03-22T07:11:18.796621 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/ 2023-03-22T07:11:18.872087 image/svg+xml Matplotlib v3.7.1, https://matplotlib.org/


Критическая уязвимость: 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, и добавьте соль к паролям для усиления безопасности.