Bypass The Authentification
đ Introduction
Ce challenge a pour objectif de contourner un systĂšme dâauthentification en exploitant une faille dâinjection SQL, afin de bypass lâauthentification et de rĂ©cupĂ©rer le flag.
đ Solution
La page dâaccueil prĂ©sente un site classique, organisĂ© en plusieurs sections. La seule section accessible et pertinente pour notre objectif est Connexion SĂ©curisĂ©e, qui mĂšne Ă un formulaire dâauthentification.
En entrant des identifiants quelconques, lâapplication retourne un message dâerreur indiquant que le nom dâutilisateur ou le mot de passe est incorrect. Puisque nous nâavons aucune information au prĂ©alable sur dâĂ©ventuels identifiants, nous choisissons de tester une injection SQL pour contourner lâauthentification.
đđ UNION SQLI
En injectant une simple apostrophe ('
) dans le champ username, lâapplication rĂ©agit diffĂ©remment et retourne un code dâerreur 500.
Lorsque nous essayons dâentrer le mot OR, lâapplication le bloque et affiche un message dâerreur âEntrĂ©e non valideâ.
Cela suggĂšre que lâapplication utilise une blacklist pour empĂȘcher certaines entrĂ©es susceptibles de conduire Ă une injection SQL. Nous devons donc trouver une autre mĂ©thode pour contourner lâauthentification sans utiliser le mot OR.
Pour ce faire, nous avons utilisé le payload suivant :
1
fxoverflow'UNION select 1,2,3--
Il est crucial de respecter le mĂȘme nombre de colonnes dans la requĂȘte SELECT pour Ă©viter un code dâerreur 500.
Ce payload rĂ©ussit Ă contourner le formulaire dâauthentification et nous connecte sous lâidentitĂ© de lâutilisateur â2â.
Avec cette injection, la requĂȘte finale ressemble Ă ceci :
1
SELECT * FROM users WHERE username = 'fxoverflow' UNION SELECT 1,2,3--' AND password = 'user_input';
Cette requĂȘte :
Effectue la sĂ©lection habituelle sur le tableau users avec le username = âfxoverflowâ, mais cette condition Ă©choue car lâutilisateur nâexiste pas.
Le UNION permet de combiner cette premiĂšre requĂȘte avec SELECT 1,2,3, qui est exĂ©cutĂ©e mĂȘme si la condition initiale est fausse. GrĂące au â, la vĂ©rification du mot de passe est ignorĂ©e, ce qui fait que lâapplication retourne une rĂ©ponse rĂ©ussie basĂ©e sur les rĂ©sultats du UNION SELECT.
đ FLAG : PPC2024{4UwxK287znVNp8}
đ