Cybersecurity
  • Mon Blog
    • 🏠Home
    • 📦Archives
      • 2024
      • 2023
      • 2022
    • 📂Catégories
    • 📧A propos de moi
  • Mes projets
    • Livres / publications
      • Sécurité des applications web - Stratégies offensives et défensives
    • MyExpense
    • XSS Exploitation Tool
  • Mes Articles
    • 2025
      • Mars
        • Comment les requêtes préparées (prepared statement) protègent-elles contre les injections SQL ?
      • Janvier
        • XSS Exploitation Tool v0.7.0
    • 2024
      • Décembre
        • XSS Exploitation Tool v0.6.0
      • Septembre
        • MyExpense v1.4
      • Aout
        • XSS Exploitation Tool v0.5.0
        • Exploitation des injections SQL au sein de la clause ORDER BY
      • Juin
        • Parution de mon livre, Sécurité des applications web - Stratégies offensives et défensives
      • Mai
        • Dompurify 3.0.10 bypass - Confusion nodeName and CDATA
        • Dompurify 3.0.9 bypass - Node type confusion
      • Avril
        • Bypass de validation d'URL et embedded credentials côté front
      • Mars
        • MyExpense v1.3
    • 2023
      • Mai
        • MyExpense v1.2
      • Mars
        • MyExpense v1.1
        • Fonctionnement de l'entête X-Content-Type-Options - Contournement de CSP
      • Février
        • Fonctionnement de l'entête HTTP Strict Transport Security Header (HSTS)
    • 2022
      • Décembre
        • Les injections CSS - Règle @import
        • Les injections CSS - Scroll-to-Text Fragment
      • Novembre
        • Les injections CSS - Attribute Selector
        • Les injections CSS - Règle @font-face et descripteur unicode
      • Octobre
        • XSS Exploitation Tool v0.4.0
      • Septembre
        • Cross-Site Scripting (XSS) et schéma d'URI javascript
      • Juillet
        • SAST - PHP CodeSniffer orienté sécurité dans Visual Studio (sous Windows)
        • SAST - PHP CodeSniffer orienté sécurité dans Visual Studio (sous Debian)
        • Est-il possible de contourner la fonction PHP htmlspecialchars() ?
  • Common Vulnerabilities and Exposures (CVE)
    • 2024
      • CVE-2024-29415
    • 2023
      • CVE-2023-42282
    • 2022
      • CVE-2022-33910
      • CVE-2022-32444
      • CVE-2022-32442
    • 2020
      • CVE-2020-26311
  • Livres
    • 2023
      • Attacking and Exploiting Modern Web Applications
      • DevSecOps - Développez et administrez vos services en toute sécurité
    • 2022
      • Hacking APIs - Breaking Web Application Programming Interfaces
    • 2018
      • Practical Web Penetration Testing
      • Web Hacking 101: How to Make Money Hacking Ethically
  • Walkthroughs
    • Capture The Flag
      • Hack.lu CTF 2019
        • Nucular Power Plant
      • TAMUctf 2019
        • 1337 Secur1ty
        • Bird Box Challenge
        • Science!
    • Deliberately Vulnerable
      • CORS vulnerable Lab
        • Application Trust Arbritrary Origin
        • Application has bad "regex" Implementation to check Trusted Origin
        • Application Trust "null" Origin
      • Damn Vulnerable Web Application (DVWA)
        • Brute Force
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • Command Injection
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • CSRF
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • File Inclusion
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • File Upload
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • Insecure CAPTCHA
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • SQL Injection
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • SQL Injection (Blind)
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • Weak Session IDs
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • XSS (DOM)
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • XSS (Reflected)
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • XSS (Stored)
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • CSP Bypass
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • Javascript
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
      • Unescape() room
        • Level 1 (practice)
        • Level 2 (practice)
        • Level 3 (practice)
        • Level 4 (practice)
        • Level 5 (practice)
        • Level 6 (practice)
        • Level 7 (practice)
        • Level 8 (practice)
        • Level 9 (practice)
        • Level 10 (practice)
      • VulnHub
        • GoatseLinux: 1
        • Hackademic: RTB1
        • Hackademic: RTB2
        • Holynix: v1
        • Holynix: v2
        • Kioptrix: Level 1 (#1)
        • Kioptrix: Level 1.1 (#2)
        • Kioptrix: Level 1.2 (#3)
        • Kioptrix: Level 1.3 (#4)
        • LAMPSecurity: CTF4
        • LAMPSecurity: CTF5
        • LAMPSecurity: CTF6
        • Metasploitable: 1
        • pWnOS 1.0
        • pWnOS 2.0 (Pre-Release)
      • XSS Vulnerability Challenges
        • xss1
        • xss2
        • xss3
        • xss4
        • xss5
        • xxs6
        • xss7
        • xss8
Propulsé par GitBook
Sur cette page
  • Détails du challenge
  • Reconnaissance
  • Exploitation
  1. Walkthroughs
  2. Capture The Flag
  3. TAMUctf 2019

Bird Box Challenge

Précédent1337 Secur1tySuivantScience!

Dernière mise à jour il y a 2 ans

Détails du challenge

"Bird Box Challenge" est un challenge Web de niveau difficile (hard). Son accès se fait grâce à une URL indiquée dans une modale :

Reconnaissance

La première page contient un champ permettant une recherche sans savoir à quoi cela va mener :

En renseignant une valeur aléatoire, ici "toto", le résultat semble indiquer que ma recherche n'est pas ce qui est attendu :

Je prends le soin de remarquer que le paramètre nommé "Search" est envoyé en GET et non en POST à la page "Search.php" :

Rien de particulier au niveau du code source que cela soit pour la page d'accueil ou pour la page de résultats de la recherche. Par contre une chose intéressante est que la réponse de ma recherche est un code d'erreur HTTP 500 ("Internal Server Error") :

La première chose que je tente est de ne plus recevoir une erreur 500 mais un 200 OK indiquant que la requête s'est déroulée sans encombre, tout en gardant en mémoire quelle vulnérabilité est la plus susceptible d'arriver sur ce genre de scénario (je pense notamment au SQLi). J'ajoute donc sans trop me poser de questions une apostrophe pour tenter de déclencher une erreur SQL. Mais en faisant cela la le traitement de la requête s'effectue correctement et le serveur répond un 200 OK :

J'ai tout d'abord tenté une injection basée sur un SLEEP(), mais bien que la requête prenne plus de temps elle semble plutôt tomber en timeout (30 secondes de temps de réponse). Je me tourne alors vers une attaque de type boolean. Tout d'abord en tentant une condition vraie, en injectant la payload %27%20OR%201=1%23 :

Le résultat est une erreur 500 mais le message du corps de la réponse est intéressant : "Nice try, nothing to see here."

En injection maintenant une condition fausse, j'obtiens un autre message en réponse :

Exploitation

Je commence l'injection manuellement, par exemple en récupérant la version de la base de données :

Il s'agit donc d'un MySQL en version 5.7.25. Mais par manque de courage :p, je continue avec sqlmap :

Le flag est en fait le nom de l'utilisateur de la base de données, la commande permet donc de récupérer la bonne information grâce à l'option --current-user.

Comportement étrange. Mais cela peut ressembler à une erreur de développement (et surtout un manque flagrant de tests de la part du dév ). En effet, si dans le code PHP le développeur a oublié de fermer l'apostrophe cela peut sans doute engendrer une erreur 500. En ajoutant moi même ce caractère je corrige ainsi son erreur. Si j'ajoute une seconde fois un apostrophe (soit toto'') alors j'obtiens à nouveau une erreur 500, et si j'insère une troisième apostrophe (soit toto''') alors le problème est à nouveau corrigé : l'injection SQL est plus que probable.

L'injection est donc une injection à l'aveugle. En fait le nom du challenge peut également être une piste puisque le "Bird Box Challenge" est un défi qui consiste à réaliser certaines tâches les yeux bandés (). De plus la photo sur la modale d'une femme aux yeux bandés confirme bien un rapport avec la vision (ou plus exactement le manque de vision ) .

😋
🙂
https://www.20minutes.fr/high-tech/2420807-20190113-video-bird-box-challenge-defi-consiste-bander-yeux-deja-origine-accident