Schwachstellenseite unter Debian einrichten: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 103: Zeile 103:
 
  error_reporting(E_ALL);
 
  error_reporting(E_ALL);
 
  ini_set('display_errors', 1);
 
  ini_set('display_errors', 1);
 
+
 
  if ($_SERVER['REQUEST_METHOD'] === 'POST') {
 
  if ($_SERVER['REQUEST_METHOD'] === 'POST') {
 
   $username = $_POST['username'] ?? '';
 
   $username = $_POST['username'] ?? '';
 
+
 
   $link = mysqli_connect('127.0.0.1', 'webuser', 'secret', 'tuxmen');
 
   $link = mysqli_connect('127.0.0.1', 'webuser', 'secret', 'tuxmen');
 
   mysqli_set_charset($link, "utf8");
 
   mysqli_set_charset($link, "utf8");
 
+
 
   if (!$link) {
 
   if (!$link) {
 
     die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
 
     die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
 
   }
 
   }
 
+
 
   $query = "SELECT email FROM mitarbeiter WHERE username='$username'";
 
   $query = "SELECT email FROM mitarbeiter WHERE username='$username'";
 
   $result = mysqli_query($link, $query);
 
   $result = mysqli_query($link, $query);
 
+
 
   $email = null;
 
   $email = null;
 
   if ($result && mysqli_num_rows($result) > 0) {
 
   if ($result && mysqli_num_rows($result) > 0) {
 
     $email = mysqli_fetch_assoc($result)['email'];
 
     $email = mysqli_fetch_assoc($result)['email'];
 
   }
 
   }
 
+
 
   mysqli_close($link);
 
   mysqli_close($link);
 
  }
 
  }
 
  ?>
 
  ?>
 
+
 
  <!DOCTYPE html>
 
  <!DOCTYPE html>
 
  <html>
 
  <html>
Zeile 135: Zeile 135:
 
     <input type="submit" value="Suchen">
 
     <input type="submit" value="Suchen">
 
   </form>
 
   </form>
 
+
 
  <?php if (isset($email)): ?>
 
  <?php if (isset($email)): ?>
 
   <p><strong>E-Mail:</strong> <?= htmlspecialchars($email) ?></p>
 
   <p><strong>E-Mail:</strong> <?= htmlspecialchars($email) ?></p>

Version vom 14. Mai 2025, 04:26 Uhr

Apache vorbereiten

  • Apache und PHP installieren:
apt update
apt install -y apache2 php libapache2-mod-php
  • PHP aktivieren und Apache starten:
systemctl enable apache2
systemctl start apache2
  • Verzeichnis für Testseite anlegen:
mkdir -p /var/www/html/
cd /var/www/html/

MariaDB vorbereiten

  • MariaDB und PHP-MySQL-Modul installieren:
apt install -y mariadb-server php-mysql
  • MariaDB starten und beim Boot aktivieren:
systemctl enable mariadb
systemctl start mariadb

Datenbank „tuxmen“ vorbereiten

  • Als root anmelden:
mysql -u root
  • Datenbank anlegen:
CREATE DATABASE tuxmen;
USE tuxmen;

Tabelle „mitarbeiter“ erstellen

  • Tabelle erzeugen:
CREATE TABLE mitarbeiter (
  id INT PRIMARY KEY AUTO_INCREMENT,
  username VARCHAR(50),
  password VARCHAR(50),
  fullname VARCHAR(100),
  email VARCHAR(100),
  notes TEXT
);

Beispieldaten einfügen

  • Testdaten hinzufügen:
INSERT INTO mitarbeiter (username, password, fullname, email, notes) VALUES
('admin',   'admin123', 'Karl Rootmann',     'admin@tuxmen.local',  'Zugang zu allen Systemen'),
('alice',   'alicepw',  'Alice Liddell',     'alice@tuxmen.local',  'Team Marketing, Urlaub bis 22. Mai'),
('bob',     'bobpw',    'Bob Baumeister',    'bob@tuxmen.local',    'Serverraum: Türcode 1234'),
('charlie', 'charliepw','Charlie Foxtrot',   'charlie@tuxmen.local','Entwicklungstools: VSCode, Docker'),
('dora',    'dorapw',   'Dora Explorer',     'dora@tuxmen.local',   'VPN-Probleme gemeldet'),
('eve',     'evepw',    'Evelyn Mallory',    'eve@tuxmen.local',    'Audit-Team, Zugang GVM'),
('frank',   'frankpw',  'Frank Underroot',   'frank@tuxmen.local',  'Sudo-Zugang beantragt'),
('grace',   'gracepw',  'Grace Hopper',      'grace@tuxmen.local',  'Legacy-Projekt „COBOL Revival“'),
('hans',    'hanspw',   'Hans Hacker',       'hans@tuxmen.local',   'Kali-Linux Testumgebung'),
('irene',   'irenepw',  'Irene Adler',       'irene@tuxmen.local',  'Zuständig für LDAP und Mailserver');
  • Sitzung beenden:
EXIT

Umsetzung

Zentrale

  • index.html erstellen:
nano index.html

Umsetzung

Zentrale

  • index.html erstellen:
nano index.html
  • Inhalt einfügen:
<!DOCTYPE html>
<html>
<head><title>VulnSite</title></head>
<body>
  <h1>Schwachstellen Demos</h1>

  <h2>Gib einen FQDN ein - ich zeige dir die IP-Adresse</h2>
  <form action="cmd.php" method="GET">
    <input name="cmd" placeholder="z.B. google.de"><input type="submit">
  </form>
</body>
</html>

PHP Dateien

cmd.php
<?php
if (isset($_GET['cmd'])) {
  $input = $_GET['cmd'];
  echo "<pre>";
  system("host " . $input);
  echo "</pre>";
}
?>
email.php
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  $username = $_POST['username'] ?? ;

  $link = mysqli_connect('127.0.0.1', 'webuser', 'secret', 'tuxmen');
  mysqli_set_charset($link, "utf8");

  if (!$link) {
    die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
  }

  $query = "SELECT email FROM mitarbeiter WHERE username='$username'";
  $result = mysqli_query($link, $query);

  $email = null;
  if ($result && mysqli_num_rows($result) > 0) {
    $email = mysqli_fetch_assoc($result)['email'];
  }

  mysqli_close($link);
}
?>

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>E-Mail Abfrage</title></head>
<body>

E-Mail-Adresse suchen

  <form method="post">
    <input type="text" name="username" placeholder="z.B. alice">
    <input type="submit" value="Suchen">
  </form>

<?php if (isset($email)): ?>

E-Mail: <?= htmlspecialchars($email) ?>

<?php elseif ($_SERVER['REQUEST_METHOD'] === 'POST'): ?>

Kein Benutzer gefunden.

<?php endif; ?>
</body>
</html>