Une nouvelle technique a été découverte pour exploiter les vulnérabilités de SQLite

versions vulnérables de SQLite

Les Les chercheurs de Check Point ont récemment révélé dans la conférence DEF avec les détails d'une nouvelle technique découverte, ceci est utilisé pPour attaquer les applications qui utilisent des versions vulnérables de SQLite.

La méthode Check Point voit les fichiers de base de données comme une opportunité d'intégrer des scénarios d'exploitation de vulnérabilité dans divers sous-systèmes SQLite internes qui ne sont pas accessibles pour l'exploitation du front. Les chercheurs ont également développé une technique pour exploiter les vulnérabilités avec un codage d'exploit sous la forme d'une chaîne de requêtes SELECT dans une base de données SQLite, ce qui permet d'éviter l'ASLR.

À propos de la vulnérabilité

Les chercheurs de Check Point précisent que pour une attaque réussie, un attaquant doit être capable de modifier les fichiers de base de données des applications attaquées, ce qui limite la méthode d'attaque des applications qui utilisent des bases de données SQLite comme format pour les données de transit et d'entrée.

Même si ils révèlent également que le procédé peut également être utilisé pour étendre l'accès local déjà obtenu, par exemple, pour intégrer des portes dérobées cachées dans les applications utilisées, ainsi que pour éviter les chercheurs en sécurité lors de l'analyse des malwares.

L'opération après l'emprunt d'identité de fichier est effectuée au moment où l'application exécute la première requête SELECT sur la table de la base de données modifiée.

A titre d'exemple, la possibilité d'exécuter du code sur iOS lors de l'ouverture du carnet d'adresses a été démontrée, le fichier avec la base de données «Carnet d'adresses.sqlitedb»Qui a été modifié selon la méthode proposée.

Pour l'attaque, une vulnérabilité a été utilisée dans la fonction fts3_tokenizer (CVE-2019-8602, la possibilité de déréférencer un pointeur), corrigé dans la mise à jour d'avril SQLite 2.28, ainsi qu'une autre vulnérabilité dans l'implémentation des fonctions de fenêtre.

En outre, démontre l'utilisation de la méthode de prise de contrôle à distance d'un serveur backend à des attaquants écrite en PHP, qui accumule les mots de passe interceptés lors de l'opération de code malveillant (les mots de passe interceptés ont été transférés sous la forme d'une base de données SQLite).

La méthode d'attaque repose sur l'utilisation de deux techniques, le piratage de requête et la programmation orientée requête, qui permettent d'exploiter des problèmes arbitraires conduisant à une corruption de la mémoire dans le moteur SQLite.

L'essence du "détournement de requête" est de remplacer le contenu du champ "sql" dans la table de service sqlite_master qui définit la structure de la base de données. Le champ spécifié contient le bloc DDL (Data Definition Language) utilisé pour décrire la structure des objets dans la base de données.

La description est définie en utilisant la syntaxe SQL normale, c'est-à-dire. La construction "CREATE TABLE", qui est effectuée lors de l'initialisation de la base de données (lors de la première exécution de la fonction sqlite3LocateTable) est utilisée pour créer des structures internes associées à la table en mémoire.

L'idée est que suite au remplacement de "CREATE TABLE" et "CREATE VIEW, il est possible de contrôler tout accès à la base de données grâce à la définition de sa vue.

Par contre, à l'aide de la commande "CREATE VIEW", une opération "SELECT" est attachée à la table, qui sera appelée à la place de "CREATE TABLE" et permet à l'attaquant d'accéder à différentes parties de l'interpréteur SQLite.

En plus de cela, le moyen le plus simple d'attaquer serait d'appeler la fonction "load_extension", qui permet à l'attaquant de pouvoir charger une bibliothèque arbitraire avec l'extension, mais cette fonction est désactivée par défaut.

Pour effectuer une attaque dans les conditions de la capacité à effectuer l'opération SELECT, la technique de programmation orientée requête a été proposée, qui permet d'exploiter des problèmes dans SQLite qui conduisent à une corruption de la mémoire.

La technique rappelle la programmation orientée retour (ROP), mais utilise des extraits de code machine inexistants, mais est insérée dans un ensemble de sous-requêtes dans SELECT pour créer une chaîne d'appels ("gadgets").

source: https://threatpost.com/


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.