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: Injection |
Description | يحتوي الكود على ثغرة أمان حرجة تتمثل في تنفيذ الكود البرمجي SQL غير المصرح به. يمكن للمهاجم استغلال هذه الثغرة لتنفيذ أوامر SQL ضارة. |
Remediation | يجب تحديد المدخلات وتنقيتها قبل استخدامها في الاستعلامات SQL. استخدم الإعدادات المسبقة والمكافحة للتأكد من أن المدخلات آمنة ولا تحتوي على أكواد SQL ضارة. |
أمانة ثابتة -> 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-259: استخدام كلمة مرور ثابتة |
Description | يحتوي الكود على كلمات مرور ثابتة للمستخدمين مما يعرضهم لخطر الاختراق. |
Remediation | استخدم آلية تخزين آمنة لكلمات المرور مثل تشفير bcrypt وتأكد من عدم استخدام كلمات مرور ثابتة في الكود. |
SQL Injection -> Unnamed | DVWA-master/vulnerabilities/brute/source/high.php:0 |
<?php
if( isset( $_GET[ 'Login' ] ) ) {
// Check Anti-CSRF token
checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );
// Sanitise username input
$user = $_GET[ 'username' ];
$user = stripslashes( $user );
$user = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $user ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
// Sanitise password input
$pass = $_GET[ 'password' ];
$pass = stripslashes( $pass );
$pass = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $pass ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
$pass = md5( $pass );
// Check database
$query = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";
$result = mysqli_query($GLOBALS["___mysqli_ston"], $query ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );
if( $result && mysqli_num_rows( $result ) == 1 ) {
// Get users details
$row = mysqli_fetch_assoc( $result );
$avatar = $row["avatar"];
// Login successful
$html .= "<p>Welcome to the password protected area {$user}</p>";
$html .= "<img src=\"{$avatar}\" />";
}
else {
// Login failed
sleep( rand( 0, 3 ) );
$html .= "<pre><br />Username and/or password incorrect.</pre>";
}
((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}
SQL Injection | |
---|---|
CWE ID | CWE-89 |
Description | يحتوي الكود على ثغرة حقن SQL حرجة بسبب استخدام متغيرات غير مصفاة في استعلام قاعدة البيانات. |
Remediation | استخدم الإعدادات المسبقة والمتغيرات المرتبطة لتصفية المدخلات وتأمين استعلامات قاعدة البيانات. |
SQL Injection -> Unnamed | DVWA-master/vulnerabilities/brute/source/low.php:0 |
<?php
if( isset( $_GET[ 'Login' ] ) ) {
// Get username
$user = $_GET[ 'username' ];
// Get password
$pass = $_GET[ 'password' ];
$pass = md5( $pass );
// Check the database
$query = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";
$result = mysqli_query($GLOBALS["___mysqli_ston"], $query ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );
if( $result && mysqli_num_rows( $result ) == 1 ) {
// Get users details
$row = mysqli_fetch_assoc( $result );
$avatar = $row["avatar"];
// Login successful
$html .= "<p>Welcome to the password protected area {$user}</p>";
$html .= "<img src=\"{$avatar}\" />";
}
else {
// Login failed
$html .= "<pre><br />Username and/or password incorrect.</pre>";
}
((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}
SQL Injection | |
---|---|
CWE ID | CWE-89 |
Description | يحتوي الكود على ثغرة حرجة من نوع SQL Injection حيث يتم استخدام متغيرات المستخدم مباشرة داخل استعلام SQL دون تنظيفها أو استخدام الإعدادات المسبقة. |
Remediation | يجب تنظيف متغيرات المستخدم واستخدام الإعدادات المسبقة (Prepared Statements) لتأمين استعلامات SQL. |
SQL Injection -> Unnamed | DVWA-master/vulnerabilities/brute/source/medium.php:0 |
<?php
if( isset( $_GET[ 'Login' ] ) ) {
// Sanitise username input
$user = $_GET[ 'username' ];
$user = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $user ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
// Sanitise password input
$pass = $_GET[ 'password' ];
$pass = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $pass ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
$pass = md5( $pass );
// Check the database
$query = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";
$result = mysqli_query($GLOBALS["___mysqli_ston"], $query ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );
if( $result && mysqli_num_rows( $result ) == 1 ) {
// Get users details
$row = mysqli_fetch_assoc( $result );
$avatar = $row["avatar"];
// Login successful
$html .= "<p>Welcome to the password protected area {$user}</p>";
$html .= "<img src=\"{$avatar}\" />";
}
else {
// Login failed
sleep( 2 );
$html .= "<pre><br />Username and/or password incorrect.</pre>";
}
((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}
SQL Injection | |
---|---|
CWE ID | CWE-89 |
Description | يحتوي الكود على ثغرة حقن SQL حيث يتم استخدام متغيرات GET للمستخدم وكلمة المرور دون التحقق منها بشكل صحيح. |
Remediation | يجب استخدام الاستعلامات المعدة مسبقًا (Prepared Statements) للتحقق من المتغيرات وتجنب حقن SQL. |
استخدام غير آمن لـ md5 لتخزين كلمات المرور -> Unnamed | DVWA-master/vulnerabilities/captcha/source/impossible.php:0 |
<?php
if( isset( $_POST[ 'Change' ] ) ) {
// Check Anti-CSRF token
checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );
// Hide the CAPTCHA form
$hide_form = true;
// Get input
$pass_new = $_POST[ 'password_new' ];
$pass_new = stripslashes( $pass_new );
$pass_new = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $pass_new ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
$pass_new = md5( $pass_new );
$pass_conf = $_POST[ 'password_conf' ];
$pass_conf = stripslashes( $pass_conf );
$pass_conf = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $pass_conf ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
$pass_conf = md5( $pass_conf );
$pass_curr = $_POST[ 'password_current' ];
$pass_curr = stripslashes( $pass_curr );
$pass_curr = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $pass_curr ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
$pass_curr = md5( $pass_curr );
// Check CAPTCHA from 3rd party
$resp = recaptcha_check_answer(
$_DVWA[ 'recaptcha_private_key' ],
$_POST['g-recaptcha-response']
);
// Did the CAPTCHA fail?
if( !$resp ) {
// What happens when the CAPTCHA was entered incorrectly
$html .= "<pre><br />The CAPTCHA was incorrect. Please try again.</pre>";
$hide_form = false;
}
else {
// Check that the current password is correct
$data = $db->prepare( 'SELECT password FROM users WHERE user = (:user) AND password = (:password) LIMIT 1;' );
$data->bindParam( ':user', dvwaCurrentUser(), PDO::PARAM_STR );
$data->bindParam( ':password', $pass_curr, PDO::PARAM_STR );
$data->execute();
// Do both new password match and was the current password correct?
if( ( $pass_new == $pass_conf) && ( $data->rowCount() == 1 ) ) {
// Update the database
$data = $db->prepare( 'UPDATE users SET password = (:password) WHERE user = (:user);' );
$data->bindParam( ':password', $pass_new, PDO::PARAM_STR );
$data->bindParam( ':user', dvwaCurrentUser(), PDO::PARAM_STR );
$data->execute();
// Feedback for the end user - success!
$html .= "<pre>Password Changed.</pre>";
}
else {
// Feedback for the end user - failed!
$html .= "<pre>Either your current password is incorrect or the new passwords did not match.<br />Please try again.</pre>";
$hide_form = false;
}
}
}
استخدام غير آمن لـ md5 لتخزين كلمات المرور | |
---|---|
CWE ID | CWE-326: استخدام ضعيف لتشفير كلمة المرور |
Description | يستخدم الكود md5 لتشفير كلمات المرور قبل تخزينها في قاعدة البيانات. تعتبر md5 طريقة ضعيفة وغير آمنة لتخزين كلمات المرور بسبب سهولة اختراقها. |
Remediation | استخدم تشفير أقوى مثل bcrypt أو Argon2 لتخزين كلمات المرور بشكل آمن. |
SQL Injection -> Unnamed | DVWA-master/vulnerabilities/csrf/source/low.php:0 |
<?php
if( isset( $_GET[ 'Change' ] ) ) {
// Get input
$pass_new = $_GET[ 'password_new' ];
$pass_conf = $_GET[ 'password_conf' ];
// Do the passwords match?
if( $pass_new == $pass_conf ) {
// They do!
$pass_new = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $pass_new ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
$pass_new = md5( $pass_new );
// Update the database
$insert = "UPDATE `users` SET password = '$pass_new' WHERE user = '" . dvwaCurrentUser() . "';";
$result = mysqli_query($GLOBALS["___mysqli_ston"], $insert ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );
// Feedback for the user
$html .= "<pre>Password Changed.</pre>";
}
else {
// Issue with passwords matching
$html .= "<pre>Passwords did not match.</pre>";
}
((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}
SQL Injection | |
---|---|
CWE ID | CWE-89 |
Description | يحتوي الكود على ثغرة أمان حرجة تتمثل في حقن SQL. يتم استخدام متغيرات GET دون تنقية أو إعداد استعلامات معلمة. |
Remediation | يجب تنقية المتغيرات المستخدمة في استعلامات SQL واستخدام الاستعلامات المعلمة للحماية من حقن SQL. |
SQL Injection -> Unnamed | DVWA-master/vulnerabilities/csrf/source/medium.php:0 |
<?php
if( isset( $_GET[ 'Change' ] ) ) {
// Checks to see where the request came from
if( stripos( $_SERVER[ 'HTTP_REFERER' ] ,$_SERVER[ 'SERVER_NAME' ]) !== false ) {
// Get input
$pass_new = $_GET[ 'password_new' ];
$pass_conf = $_GET[ 'password_conf' ];
// Do the passwords match?
if( $pass_new == $pass_conf ) {
// They do!
$pass_new = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $pass_new ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
$pass_new = md5( $pass_new );
// Update the database
$insert = "UPDATE `users` SET password = '$pass_new' WHERE user = '" . dvwaCurrentUser() . "';";
$result = mysqli_query($GLOBALS["___mysqli_ston"], $insert ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );
// Feedback for the user
$html .= "<pre>Password Changed.</pre>";
}
else {
// Issue with passwords matching
$html .= "<pre>Passwords did not match.</pre>";
}
}
else {
// Didn't come from a trusted source
$html .= "<pre>That request didn't look correct.</pre>";
}
((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}
SQL Injection | |
---|---|
CWE ID | CWE-89: SQL Injection |
Description | يحتوي الكود على ثغرة حقن SQL الحرجة. يمكن للمهاجم استغلال هذه الثغرة لتنفيذ استعلامات SQL ضارة والوصول إلى البيانات الحساسة أو تعديلها. |
Remediation | استخدم إعدادات الإدخال المعقولة واستخدم الإجراءات المعلمة والتحقق من صحة جميع المدخلات الخارجية. |
SQL Injection -> Unnamed | DVWA-master/vulnerabilities/csrf/test_credentials.php:0 |
<?php
define( 'DVWA_WEB_PAGE_TO_ROOT', '../../' );
require_once DVWA_WEB_PAGE_TO_ROOT . 'dvwa/includes/dvwaPage.inc.php';
dvwaPageStartup( array( 'authenticated' ) );
dvwaDatabaseConnect();
$login_state = "";
if( isset( $_POST[ 'Login' ] ) ) {
$user = $_POST[ 'username' ];
$user = stripslashes( $user );
$user = mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $user);
$pass = $_POST[ 'password' ];
$pass = stripslashes( $pass );
$pass = mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $pass);
$pass = md5( $pass );
$query = "SELECT * FROM `users` WHERE user='$user' AND password='$pass';";
$result = @mysqli_query($GLOBALS["___mysqli_ston"], $query) or die( '<pre>'. mysqli_connect_error() . '.<br />Try <a href="setup.php">installing again</a>.</pre>' );
if( $result && mysqli_num_rows( $result ) == 1 ) { // Login Successful...
$login_state = "<h3 class=\"loginSuccess\">Valid password for '{$user}'</h3>";
}else{
// Login failed
$login_state = "<h3 class=\"loginFail\">Wrong password for '{$user}'</h3>";
}
}
SQL Injection | |
---|---|
CWE ID | CWE-89: SQL Injection |
Description | يحتوي الكود على ثغرة أمان حرجة تتمثل في حقن SQL. يمكن للمهاجم استغلال هذه الثغرة لتنفيذ استعلامات SQL غير مرغوب فيها والوصول إلى بيانات المستخدمين وتعديلها. |
Remediation | يجب استخدام إعدادات الاستعلامات المعلمة (Prepared Statements) لتأمين الاستعلامات SQL ومنع حقن SQL. يمكن استخدام مكتبة PDO أو MySQLi لتنفيذ إعدادات الاستعلامات المعلمة في PHP. |
Command Injection -> Unnamed | DVWA-master/vulnerabilities/exec/source/high.php:0 |
<?php
if( isset( $_POST[ 'Submit' ] ) ) {
// Get input
$target = trim($_REQUEST[ 'ip' ]);
// Set blacklist
$substitutions = array(
'&' => '',
';' => '',
'| ' => '',
'-' => '',
'$' => '',
'(' => '',
')' => '',
'`' => '',
'||' => '',
);
// Remove any of the characters in the array (blacklist).
$target = str_replace( array_keys( $substitutions ), $substitutions, $target );
// Determine OS and execute the ping command.
if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
// Windows
$cmd = shell_exec( 'ping ' . $target );
}
else {
// *nix
$cmd = shell_exec( 'ping -c 4 ' . $target );
}
// Feedback for the end user
$html .= "<pre>{$cmd}</pre>";
}
Command Injection | |
---|---|
CWE ID | CWE-77: Command Injection |
Description | يحتوي الكود على ثغرة حرجة من نوع Command Injection حيث يتم استقبال متغير 'ip' من المستخدم ويتم تنفيذه كجزء من الأمر shell_exec بدون تنقية كافية. |
Remediation | يجب تنقية المدخلات بشكل صحيح واستخدام وظائف آمنة لتنفيذ الأوامر على النظام. يمكن استخدام escapeshellarg لتأمين المتغيرات المستخدمة في الأوامر. |
Command Injection -> Unnamed | DVWA-master/vulnerabilities/exec/source/impossible.php:0 |
<?php
if( isset( $_POST[ 'Submit' ] ) ) {
// Check Anti-CSRF token
checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );
// Get input
$target = $_REQUEST[ 'ip' ];
$target = stripslashes( $target );
// Split the IP into 4 octects
$octet = explode( ".", $target );
// Check IF each octet is an integer
if( ( is_numeric( $octet[0] ) ) && ( is_numeric( $octet[1] ) ) && ( is_numeric( $octet[2] ) ) && ( is_numeric( $octet[3] ) ) && ( sizeof( $octet ) == 4 ) ) {
// If all 4 octets are int's put the IP back together.
$target = $octet[0] . '.' . $octet[1] . '.' . $octet[2] . '.' . $octet[3];
// Determine OS and execute the ping command.
if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
// Windows
$cmd = shell_exec( 'ping ' . $target );
}
else {
// *nix
$cmd = shell_exec( 'ping -c 4 ' . $target );
}
// Feedback for the end user
$html .= "<pre>{$cmd}</pre>";
}
else {
// Ops. Let the user name theres a mistake
$html .= '<pre>ERROR: You have entered an invalid IP.</pre>';
}
}
Command Injection | |
---|---|
CWE ID | CWE-77: Command Injection |
Description | يحتوي الكود على ثغرة أمان حرجة تتمثل في حقن الأوامر (Command Injection) حيث يتم استخدام متغير غير مصفى ($target) في تنفيذ الأوامر shell_exec. |
Remediation | يجب تطبيق التصفية والتحقق من المدخلات بشكل صحيح قبل استخدامها في تنفيذ الأوامر. استخدم دوال مكتبة PHP المدمجة للتحقق من صحة عناوين IP وتجنب استخدام المتغيرات غير المصفاة في تنفيذ الأوامر. |
تنفيذ الأوامر عن بعد -> Unnamed | DVWA-master/vulnerabilities/exec/source/medium.php:0 |
<?php
if( isset( $_POST[ 'Submit' ] ) ) {
// Get input
$target = $_REQUEST[ 'ip' ];
// Set blacklist
$substitutions = array(
'&&' => '',
';' => '',
);
// Remove any of the charactars in the array (blacklist).
$target = str_replace( array_keys( $substitutions ), $substitutions, $target );
// Determine OS and execute the ping command.
if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
// Windows
$cmd = shell_exec( 'ping ' . $target );
}
else {
// *nix
$cmd = shell_exec( 'ping -c 4 ' . $target );
}
// Feedback for the end user
$html .= "<pre>{$cmd}</pre>";
}
تنفيذ الأوامر عن بعد | |
---|---|
CWE ID | CWE-78: تنفيذ الأوامر عن بعد |
Description | يحتوي الكود على ثغرة أمنية حرجة تتيح للمستخدم تنفيذ الأوامر عن بعد على الخادم باستخدام وظيفة shell_exec. |
Remediation | يجب تحديد المدخلات واستخدام وظائف أكثر أمانًا للتحكم في الأوامر المنفذة على الخادم. يمكن استخدام escapeshellarg لتأمين المتغيرات المستخدمة في الأوامر. |
XSS (Cross-Site Scripting) Vulnerability -> Unnamed | DVWA-master/vulnerabilities/javascript/source/low.php:0 |
<?php
$page[ 'body' ] .= <<<EOF
<script>
/*
MD5 code from here
https://github.com/blueimp/JavaScript-MD5
*/
!function(n){"use strict";function t(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function r(n,t){return n<<t|n>>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var e,i,a,d,h,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e<n.length;e+=16)i=l,a=g,d=v,h=m,g=f(g=f(g=f(g=f(g=c(g=c(g=c(g=c(g=u(g=u(g=u(g=u(g=o(g=o(g=o(g=o(g,v=o(v,m=o(m,l=o(l,g,v,m,n[e],7,-680876936),g,v,n[e+1],12,-389564586),l,g,n[e+2],17,606105819),m,l,n[e+3],22,-1044525330),v=o(v,m=o(m,l=o(l,g,v,m,n[e+4],7,-176418897),g,v,n[e+5],12,1200080426),l,g,n[e+6],17,-1473231341),m,l,n[e+7],22,-45705983),v=o(v,m=o(m,l=o(l,g,v,m,n[e+8],7,1770035416),g,v,n[e+9],12,-1958414417),l,g,n[e+10],17,-42063),m,l,n[e+11],22,-1990404162),v=o(v,m=o(m,l=o(l,g,v,m,n[e+12],7,1804603682),g,v,n[e+13],12,-40341101),l,g,n[e+14],17,-1502002290),m,l,n[e+15],22,1236535329),v=u(v,m=u(m,l=u(l,g,v,m,n[e+1],5,-165796510),g,v,n[e+6],9,-1069501632),l,g,n[e+11],14,643717713),m,l,n[e],20,-373897302),v=u(v,m=u(m,l=u(l,g,v,m,n[e+5],5,-701558691),g,v,n[e+10],9,38016083),l,g,n[e+15],14,-660478335),m,l,n[e+4],20,-405537848),v=u(v,m=u(m,l=u(l,g,v,m,n[e+9],5,568446438),g,v,n[e+14],9,-1019803690),l,g,n[e+3],14,-187363961),m,l,n[e+8],20,1163531501),v=u(v,m=u(m,l=u(l,g,v,m,n[e+13],5,-1444681467),g,v,n[e+2],9,-51403784),l,g,n[e+7],14,1735328473),m,l,n[e+12],20,-1926607734),v=c(v,m=c(m,l=c(l,g,v,m,n[e+5],4,-378558),g,v,n[e+8],11,-2022574463),l,g,n[e+11],16,1839030562),m,l,n[e+14],23,-35309556),v=c(v,m=c(m,l=c(l,g,v,m,n[e+1],4,-1530992060),g,v,n[e+4],11,1272893353),l,g,n[e+7],16,-155497632),m,l,n[e+10],23,-1094730640),v=c(v,m=c(m,l=c(l,g,v,m,n[e+13],4,681279174),g,v,n[e],11,-358537222),l,g,n[e+3],16,-722521979),m,l,n[e+6],23,76029189),v=c(v,m=c(m,l=c(l,g,v,m,n[e+9],4,-640364487),g,v,n[e+12],11,-421815835),l,g,n[e+15],16,530742520),m,l,n[e+2],23,-995338651),v=f(v,m=f(m,l=f(l,g,v,m,n[e],6,-198630844),g,v,n[e+7],10,1126891415),l,g,n[e+14],15,-1416354905),m,l,n[e+5],21,-57434055),v=f(v,m=f(m,l=f(l,g,v,m,n[e+12],6,1700485571),g,v,n[e+3],10,-1894986606),l,g,n[e+10],15,-1051523),m,l,n[e+1],21,-2054922799),v=f(v,m=f(m,l=f(l,g,v,m,n[e+8],6,1873313359),g,v,n[e+15],10,-30611744),l,g,n[e+6],15,-1560198380),m,l,n[e+13],21,1309151649),v=f(v,m=f(m,l=f(l,g,v,m,n[e+4],6,-145523070),g,v,n[e+11],10,-1120210379),l,g,n[e+2],15,718787259),m,l,n[e+9],21,-343485551),l=t(l,i),g=t(g,a),v=t(v,d),m=t(m,h);return[l,g,v,m]}function a(n){var t,r="",e=32*n.length;for(t=0;t<e;t+=8)r+=String.fromCharCode(n[t>>5]>>>t%32&255);return r}function d(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+=1)r[t]=0;var e=8*n.length;for(t=0;t<e;t+=8)r[t>>5]|=(255&n.charCodeAt(t/8))<<t%32;return r}function h(n){return a(i(d(n),8*n.length))}function l(n,t){var r,e,o=d(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length>16&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(d(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),e+="0123456789abcdef".charAt(t>>>4&15)+"0123456789abcdef".charAt(15&t);return e}function v(n){return unescape(encodeURIComponent(n))}function m(n){return h(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}"function"==typeof define&&define.amd?define(function(){return A}):"object"==typeof module&&module.exports?module.exports=A:n.md5=A}(this);
function rot13(inp) {
return inp.replace(/[a-zA-Z]/g,function(c){return String.fromCharCode((c<="Z"?90:122)>=(c=c.charCodeAt(0)+13)?c:c-26);});
}
function generate_token() {
var phrase = document.getElementById("phrase").value;
document.getElementById("token").value = md5(rot13(phrase));
}
generate_token();
</script>
EOF;
XSS (Cross-Site Scripting) Vulnerability | |
---|---|
CWE ID | CWE-79: Cross-Site Scripting (XSS) |
Description | يحتوي الكود على ثغرة XSS حيث يتم تضمين محتوى غير آمن داخل العنصر النصي (script) مباشرة. |
Remediation | يجب تحديد مصدر البيانات وتنظيفها قبل تضمينها في الصفحة. استخدم الوظائف المناسبة لترميز البيانات والتأكد من أنها آمنة قبل إضافتها إلى الكود. |
تحويل HTTP مفتوح -> Unnamed | DVWA-master/vulnerabilities/open_redirect/index.php:0 |
<?php
define( 'DVWA_WEB_PAGE_TO_ROOT', '../../' );
require_once DVWA_WEB_PAGE_TO_ROOT . 'dvwa/includes/dvwaPage.inc.php';
dvwaPageStartup( array( 'authenticated' ) );
$page = dvwaPageNewGrab();
$page[ 'title' ] = 'Vulnerability: Open HTTP Redirect' . $page[ 'title_separator' ].$page[ 'title' ];
$page[ 'page_id' ] = 'open_redirect';
$page[ 'help_button' ] = 'open_redirect';
$page[ 'source_button' ] = 'open_redirect';
dvwaDatabaseConnect();
switch( dvwaSecurityLevelGet() ) {
case 'low':
$link1 = "source/low.php?redirect=info.php?id=1";
$link2 = "source/low.php?redirect=info.php?id=2";
break;
case 'medium':
$link1 = "source/medium.php?redirect=info.php?id=1";
$link2 = "source/medium.php?redirect=info.php?id=2";
break;
case 'high':
$link1 = "source/high.php?redirect=info.php?id=1";
$link2 = "source/high.php?redirect=info.php?id=2";
break;
default:
$link1 = "source/impossible.php?redirect=1";
$link2 = "source/impossible.php?redirect=2";
break;
}
تحويل HTTP مفتوح | |
---|---|
CWE ID | CWE-601: URL Redirection to Untrusted Site ('Open Redirect') |
Description | يحتوي الكود على ثغرة أمان حرجة تتعلق بتحويل HTTP مفتوح. يمكن للمهاجم استغلال هذه الثغرة لتحويل المستخدمين إلى مواقع ويب ضارة. |
Remediation | يجب التحقق من المعلمات المستخدمة في عمليات التحويل والتأكد من أنها تأتي من مصدر موثوق وتحتوي على عناوين URL آمنة فقط. |
الثغرة الأمنية: إعادة توجيه HTTP مفتوحة -> Unnamed | DVWA-master/vulnerabilities/open_redirect/index.php:33 |
$page[ 'body' ] .= "
<div class=\"body_padded\">
<h1>Vulnerability: Open HTTP Redirect</h1>
<div class=\"vulnerable_code_area\">
<h2>Hacker History</h2>
<p>
Here are two links to some famous hacker quotes, see if you can hack them.
</p>
<ul>
<li><a href='{$link1}'>Quote 1</a></li>
<li><a href='{$link2}'>Quote 2</a></li>
</ul>
{$html}
</div>
<h2>More Information</h2>
<ul>
<li>" . dvwaExternalLinkUrlGet( 'https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html', "OWASP Unvalidated Redirects and Forwards Cheat Sheet" ) . "</li>
<li>" . dvwaExternalLinkUrlGet( 'https://owasp.org/www-project-web-security-testing-guide/stable/4-Web_Application_Security_Testing/11-Client-side_Testing/04-Testing_for_Client-side_URL_Redirect', "WSTG - Testing for Client-side URL Redirect") . "</li>
<li>" . dvwaExternalLinkUrlGet( 'https://cwe.mitre.org/data/definitions/601.html', "Mitre - CWE-601: URL Redirection to Untrusted Site ('Open Redirect')" ) . "</li>
</ul>
</div>\n";
الثغرة الأمنية: إعادة توجيه HTTP مفتوحة | |
---|---|
CWE ID | CWE-601: إعادة توجيه URL إلى موقع غير موثوق (إعادة توجيه مفتوحة) |
Description | يحتوي الكود على إعادة توجيه HTTP مفتوحة، مما يتيح للمهاجمين إعادة توجيه المستخدمين إلى مواقع غير موثوقة. |
Remediation | قم بالتحقق من المعلمات المستخدمة في إعادة التوجيه والتأكد من أنها تشير إلى مواقع موثوقة فقط. استخدم قائمة بيضاء للمواقع المسموح بها وتحقق من أن المعلمات تطابق هذه القائمة قبل إجراء عملية إعادة التوجيه. |
CWE-601: URL Redirection to Untrusted Site ('Open Redirect') -> Unnamed | DVWA-master/vulnerabilities/open_redirect/source/info.php:29 |
if ($info == "") {
http_response_code (500);
?>
<p>Missing quote ID.</p>
<?php
exit;
}
$page[ 'body' ] .= "
<div class=\"body_padded\">
<h1>Vulnerability: Open HTTP Redirect</h1>
<div class=\"vulnerable_code_area\">
<h2>Hacker Quotes</h2>
<p>
{$info}
</p>
<p><a href='../'>Back</a></p>
{$html}
</div>
<h2>More Information</h2>
<ul>
<li>" . dvwaExternalLinkUrlGet( 'https://cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html', "OWASP Unvalidated Redirects and Forwards Cheat Sheet" ) . "</li>
<li>" . dvwaExternalLinkUrlGet( 'https://owasp.org/www-project-web-security-testing-guide/stable/4-Web_Application_Security_Testing/11-Client-side_Testing/04-Testing_for_Client-side_URL_Redirect', "WSTG - Testing for Client-side URL Redirect") . "</li>
<li>" . dvwaExternalLinkUrlGet( 'https://cwe.mitre.org/data/definitions/601.html', "Mitre - CWE-601: URL Redirection to Untrusted Site ('Open Redirect')" ) . "</li>
</ul>
</div>\n";
CWE-601: URL Redirection to Untrusted Site ('Open Redirect') | |
---|---|
CWE ID | CWE-601 |
Description | يحتوي الكود على ثغرة أمان حرجة تتعلق بإعادة توجيه URL إلى موقع غير موثوق ('Open Redirect'). |
Remediation | يجب التحقق من صحة جميع المدخلات والتأكد من أنها تأتي من مصدر موثوق قبل إعادة التوجيه. يمكن استخدام قائمة بيضاء للسماح فقط بإعادة التوجيه إلى مواقع موثوقة. |