From 4860c5e84d92644c792178cb339d1fd1ec4fb177 Mon Sep 17 00:00:00 2001 From: Guillaume SCHURCK <guillaume.schurck@ensiie.fr> Date: Wed, 9 Nov 2022 17:34:54 +0100 Subject: [PATCH] Update README.md --- README.md | 77 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 48 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 80d5dda..61b0911 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,17 @@ # Démo Injection SQL -## Requirements - -- `docker` -- `docker-compose` - -## Lancement - -Stoppe les containers Docker si lancés et les recrée, réinitialise la base de données avec le scipt SQL. - -```sh -docker-compose down -v && docker-compose up --force-recreate -``` - ## Scénario d'attaque -Possibilité de rajouter du code SQL après le nombre dans le champ d'input: +Possibilité de rajouter du code SQL après le nombre dans le champ d'input. +Obtenir le mot de passe admin: ```sql -400; SELECT name, password as "price" FROM users; +400; SELECT name, password as "price" FROM users: ``` - -Le mot de passe de l'admin est hashé en md5, le bruteforce à l'aide de [cet outil](https://github.com/ngirot/BruteForce) +> Le mot de passe de l'admin est hashé en md5, le bruteforce à l'aide de [cet outil](https://github.com/ngirot/BruteForce) fonctionne en moins de 10 secondes en mode alphabet uniquement. +Supprimer les données de la table: ```sql 400; DROP TABLE products; ``` @@ -33,16 +21,47 @@ fonctionne en moins de 10 secondes en mode alphabet uniquement. La base de données utilisée ici est PostgreSQL, et permet de faire fonctionner les injections SQL simples utilisées ici. Elles ne fonctionnent pas forcément avec d'autres SGBD tel que MySQL. -## Erreurs - -Si une erreur de ce type provient lors du lancement via docker-compose : - +## Setup + +```shell +# install apache +sudo apt-get --purge remove apache2 +sudo apt-get autoremove +sudo apt-get install apache2 +sudo /etc/init.d/apache2 restart + +# open port 80 +sudo ufw allow 80/tcp + +# install php +sudo apt install php libapache2-mod-php php-mysql + +# install PostgreSQL +sudo apt install postgresql postgresql-contrib +sudo apt update +sudo apt upgrade +sudo apt install postgresql postgresql-contrib +sudo systemctl start postgresql.service + +# create PostgreSQL user and database +sudo -i -u postgres +psql +# > CREATE USER + CREATE DATABASE + +# deploy code on server +# > scp tar.gz file +tar -xvf vulnerabilities-demos-main.tar.gz +cd vulnerabilities-demos-main/ +cp -r sql/ /var/www/html/ + +# fill sql database +sudo -i -u postgres +psql +psql -U bigdata -d db -a -f initpg.sql -W -h 127.0.0.1 + +# install php extensions for PostgreSQL +sudo apt install libpq-dev -y +sudo apt install pdo +micro /etc/php/8.1/apache2/php.ini +sudo systemctl restart apache2 ``` -failed to remove network sql_default: Error response from daemon: error while removing network: network sql_default id 722fb70283cf8187e3ce6ef7389363217706ae6697b617cde238b33cade825cb has active endpoints -``` - --> Exécuter : - -```bash -docker-compose down --remove-orphans -``` \ No newline at end of file -- GitLab