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
  • Description
  • Analyse de la vulnérabilité
  • Code vulnérable
  • Ressources
  1. Common Vulnerabilities and Exposures (CVE)
  2. 2022

CVE-2022-32444

23 Juin 2022

PrécédentCVE-2022-33910SuivantCVE-2022-32442

Dernière mise à jour il y a 11 mois

Je vous propose mon analyse de la CVE-2022-32444, qui est une vulnérabilité de type Open Redirect dans le système de gestion de contenu (CMS) nommé u5CMS.

Description

  • Vendeur : Yuba ()

  • Produit : u5CMS ()

  • Version(s) impactée(s) : 8.3.5

  • Type de vulnérabilité : Open Redirect ()

La version 8.3.5 d'u5CMS est vulnérable à une faille de type Open Redirect via le paramètre d'URL u de la page /loginsave.php.

Analyse de la vulnérabilité

La page loginsave.php est appelée suite à la soumission du formulaire d'authentification disponible à l'URL /u5admin/ :

La présence du paramètre u est visible directement dans la cible du formulaire et a pour valeur u5admin :

La requête est la suivante :

POST /u5cms-8.3.5/loginsave.php?u=u5admin HTTP/1.1
Host: 192.168.56.101
Content-Length: 42
Origin: http://192.168.56.101
Content-Type: application/x-www-form-urlencoded
Referer: http://192.168.56.101/u5cms-8.3.5/u5admin/
Cookie: i1_l=P; i2_l=d; pidvesa=a; aclan=fr
Connection: close

u=sh4rpforc0rc3%40gmail.com&p=password

La réponse est une 302 redirigeant l'utilisateur vers la page d'administration du CMS :

HTTP/1.1 302 Found
Date: Wed, 22 Jun 2022 22:37:16 GMT
Server: Apache/2.4.38 (Debian)
X-XSS-Protection: 0
Set-Cookie: u=sh4rpforc0rc3%40gmail.com; path=/; HttpOnly
Set-Cookie: p=2e6b6cdb26604865418a4814561a43d99ba549e3; path=/; HttpOnly
Location: u5admin?1655937436
Content-Length: 0
Connection: close
Content-Type: text/html; charset=latin1

Une fois la redirection effectuée, l'utilisateur se retrouve sur la page d'administration du CMS /u5admin/ :

En général, une faille de type OpenRedirect sur une mire de connexion peut s'exploiter de la façon suivante :

  1. L'URL de la mire est semblable à http://exemple.com/auth?redirect=openredirectvulnerability

  2. L'attaquant soumet cette URL, en adaptant la valeur désirée au paramètre redirect, à sa victime

  3. La victime renseigne ses identifiants et se retrouve redirigée vers l'URL renseignée par l'attaquant

Dans le cadre de u5cms, l'exploitation de la vulnérabilité est possible directement en soumettant l'URL http://u5cms-host/u5cms-8.3.5/loginsave.php?u=openredirectvulnerability, qu'importe que la victime soit authentifiée ou non :

GET /u5cms-8.3.5/loginsave.php?u=https://google.fr HTTP/1.1
Host: 192.168.56.101
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7
Connection: close
HTTP/1.1 302 Found
Date: Wed, 22 Jun 2022 22:54:42 GMT
Server: Apache/2.4.38 (Debian)
X-XSS-Protection: 0
Location: https://google.fr?1655938482
Content-Length: 0
Connection: close
Content-Type: text/html; charset=latin1

Code vulnérable

Le fichier loginsave.php va récupérer la valeur du paramètre u et y effectuer un léger traitement :

  • récupérer la valeur dans $u[0] et des possibles fragments d'URL dans $u[1]

  • rediriger l'utilisateur vers index.php si la valeur $u[0] est une chaine vide

  • concaténer un timestamp dans l'URL grâce à la méthode time()

  • rediriger l'utilisateur vers la valeur contenu dans $u[0]

loginsave.php
$u=explode('#',$_GET['u']);
if(isset($u[1]))
  $u[1]='#'.$u[1];
else 
  $u[1]='';

if(trim($u[0])=='')
  $u[0]='index.php';
if(strpos($u[0],'?')>1)
  $u[0].='&'.time().$u[1];
else 
  $u[0].='?'.time().$u[1];

header("Location: ".$u[0]);

Ressources

https://github.com/u5cms/u5cms/issues/50
https://yuba.ch/
https://yuba.ch/index.php?c=u5cms&l=en
CWE-601 - URL Redirection to Untrusted Site ('Open Redirect')