En aquest exercici pràctic, aplicarem els coneixements adquirits sobre les vulnerabilitats comunes en aplicacions web per identificar possibles problemes de seguretat en un exemple d'aplicació web. Aquest exercici està dissenyat per ajudar-te a reconèixer i comprendre les vulnerabilitats més freqüents, així com a practicar les tècniques d'identificació.

Objectius de l'Exercici

  1. Identificar vulnerabilitats comunes en aplicacions web.
  2. Comprendre com aquestes vulnerabilitats poden ser explotades.
  3. Proposar mesures per mitigar les vulnerabilitats identificades.

Escenari

Tens accés a una aplicació web fictícia anomenada "WebAppDemo". Aquesta aplicació té diverses funcionalitats, com ara registre d'usuaris, inici de sessió, càrrega de fitxers i visualització de dades d'usuaris. La teva tasca és revisar el codi i les funcionalitats de l'aplicació per identificar possibles vulnerabilitats.

Passos a Seguir

  1. Revisió del Codi Font

Revisa el codi font proporcionat per a l'aplicació "WebAppDemo". Busca patrons de codi que puguin indicar la presència de vulnerabilitats.

Exemple de Codi

// Connexió a la base de dades
$conn = new mysqli($servername, $username, $password, $dbname);

// Injecció SQL
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$result = $conn->query($sql);

// Visualització de dades d'usuaris
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "ID: " . $row["id"]. " - Nom: " . $row["username"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 resultats";
}
$conn->close();

  1. Identificació de Vulnerabilitats

Analitza el codi anterior i identifica les possibles vulnerabilitats. Utilitza la següent taula per anotar les teves troballes:

Vulnerabilitat Identificada Descripció Impacte Potencial Mesures de Mitigació
Injecció SQL La consulta SQL utilitza dades d'usuari sense sanititzar. Accés no autoritzat, manipulació de dades. Utilitzar consultes preparades.
Exposició de Dades Sensibles Les dades dels usuaris es mostren sense cap tipus de control. Exposició d'informació personal. Implementar controls d'accés.

  1. Proposta de Solucions

Per a cada vulnerabilitat identificada, proposa una solució que pugui mitigar el risc associat. Aquí tens un exemple de com podries millorar el codi anterior per evitar la injecció SQL:

Codi Millorat

// Connexió a la base de dades
$conn = new mysqli($servername, $username, $password, $dbname);

// Injecció SQL evitada amb consultes preparades
$stmt = $conn->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$stmt->bind_param("ss", $username, $password);
$stmt->execute();
$result = $stmt->get_result();

// Visualització de dades d'usuaris amb control d'accés
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "ID: " . htmlspecialchars($row["id"]). " - Nom: " . htmlspecialchars($row["username"]). " - Email: " . htmlspecialchars($row["email"]). "<br>";
    }
} else {
    echo "0 resultats";
}
$stmt->close();
$conn->close();

  1. Documentació de les Troballes

Documenta les vulnerabilitats identificades i les solucions proposades en un informe. Aquest informe hauria d'incloure:

  • Descripció de la vulnerabilitat.
  • Impacte potencial.
  • Codi original i codi millorat.
  • Mesures de mitigació recomanades.

Conclusió

Aquest exercici t'ha permès practicar la identificació de vulnerabilitats en aplicacions web i proposar solucions per mitigar-les. La revisió del codi i la comprensió de les vulnerabilitats comunes són habilitats essencials per a qualsevol professional de la seguretat en aplicacions web.

Errors Comuns i Consells Addicionals

  • Error Comú: No sanititzar les dades d'entrada dels usuaris.
    • Consell: Utilitza sempre funcions de sanitització i validació per a les dades d'entrada.
  • Error Comú: Mostrar informació sensible sense cap tipus de control.
    • Consell: Implementa controls d'accés adequats per assegurar-te que només els usuaris autoritzats poden veure informació sensible.

Aquest exercici és una part fonamental del procés d'aprenentatge en seguretat d'aplicacions web i et prepara per a la identificació i mitigació de vulnerabilitats en entorns reals.

Curs d'OWASP: Directrius i Estàndards per a la Seguretat en Aplicacions Web

Mòdul 1: Introducció a OWASP

Mòdul 2: Principals Projectes d'OWASP

Mòdul 3: OWASP Top Ten

Mòdul 4: OWASP ASVS (Application Security Verification Standard)

Mòdul 5: OWASP SAMM (Software Assurance Maturity Model)

Mòdul 6: OWASP ZAP (Zed Attack Proxy)

Mòdul 7: Bones Pràctiques i Recomanacions

Mòdul 8: Exercicis Pràctics i Casos d'Estudi

Mòdul 9: Avaluació i Certificació

© Copyright 2024. Tots els drets reservats