Injection de code : énoncé
Connectez-vous en ssh à mon ordinateur portable.
Il ne sera accessible que pendant la séance, à l'adresse
ageinghacker.net , port 22222 .
(Je vais activer un tunnel ssh temporaire entre
ageinghacker.net et mon ordinateur local, qui
n'a pas d'adresse IP publique.)
Je vais vous communiquer les mots de passe par IRC.
Tâche A
=======
Le compte « vulnerable » a le script
script-vulnerable.py en tant que shell ;
donc vous ne devriez pas avoir, en théorie, la possibilité d'exécuter des
commandes arbitraires avec ce compte. Mais le script a été mal conçu, et
il est vulnérable à une injection shell.
ssh -p 22222 vulnerable@ageinghacker.net
Trouvez une façon d'exécuter une commande Bash arbitraire avec le compte
vulnerable.
Créez un fichier nommé après vous dans le répertoire personnel de
l'utilisateur.
Tâche B
=======
Le compte « vulnerable2 », encore sans accent a
le script script-vulnerable2.py en tant que
shell. script-vulnerable2.py est (à peine) plus difficile à casser par rapport
à script-vulnerable.py.
Exactement comme la tâche A, créez un fichier nommé après vous dans le
répertoire personnel de l'utilisateur.
Tâche C
=======
J'ai une installation de PostgreSQL sur mon ordinateur, accessible uniquement
en local.
Le répertoire personnel de l'utilisateur « etudiant »
contient un petit programme Python script-vulnerable-sql-python-3.py
exécutant une query SQL, qui devrait donner accès aux données en seule lecture.
Mais ce script est aussi vulnérable à une injection — dans ce cas, une injection
SQL.
ssh -p 22222 etudiant@ageinghacker.net
Vous avez le droit de lire et d'exécuter le script,
mais pas de le modifier. Votre tâche consiste à utiliser le script fourni pour
ajouter une ligne à la table Livre, en n'utilisant que le script Python fourni
— bien sûr, avec une entrée appropriée.
Quelques informations sur la table Livre :
-- À la création :
CREATE TABLE Livre (id_livre SMALLINT PRIMARY KEY,
titre VARCHAR (30) NOT NULL,
date_creation SMALLINT);
lucadb=> SELECT * FROM Livre;
id_livre | titre | date_creation
----------+----------------------------+---------------
1 | Idées noires | 1931
2 | Le grand tsar blanc | 1912
3 | Lear / La mer | 1953
4 | Le pion blanc des présages | 1895
5 | Métro pour l'enfer | 1964
6 | La reine des sortilèges | 1845
7 | Alexandre Nevsky | 1820
8 | L'homme qui rit | 2001
9 | Les travailleurs de la mer | 1842
10 | Hernani | 1830
11 | Le reseau | 1974
12 | Le reseau | 1982
Le répertoire personnel de l'utilisateur etudiant contient aussi un script
affiche-table-sql-python-3.py que vous pouvez examiner pour comprendre
comment on utilise SQL à partir de Python.
affiche-table-sql-python-3.py n'est pas vulnérable.