"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Partie SQL Injection Series: Explication détaillée des techniques avancées d'injection SQL

Partie SQL Injection Series: Explication détaillée des techniques avancées d'injection SQL

Publié le 2025-03-12
Parcourir:414

Part SQL Injection Series: Advanced SQL Injection Techniques

Auteur: Trix cyrus

outil de pentiSting waymap: cliquez ici
TrixSec GitHub: cliquez ici
TrixSec Telegram: cliquez ici

Exploits d'injection SQL avancés - Partie 7: Techniques de pointe et prévention

Bienvenue à la partie 7 de notre série d'injection SQL! Cet épisode se plonge sur Techniques d'injection SQL avancées employées par les attaquants et fournit des stratégies exploitables pour les contrer. À mesure que les menaces évoluent, la compréhension de ces méthodes sophistiquées est cruciale pour rester à l'avance.


1. Techniques d'injection SQL avancées

1.1. Injection SQL hors bande

L'injection hors bande (OOB) est utilisée lorsque l'attaquant ne peut pas observer directement les résultats de sa charge utile. Au lieu de cela, ils s'appuient sur les demandes DNS ou HTTP pour exfiltrer les données.

  • comment cela fonctionne : La charge utile déclenche une requête qui envoie des données à un serveur contrôlé par l'attaquant. Par exemple:
  SELECT * FROM users WHERE>



The above payload exploits SQL Server's xp_dirtree to make an outbound DNS request.

  • Real-World Example:

    In 2019, attackers used OOB techniques to bypass traditional defenses and exfiltrate sensitive data from a government database.

  • Mitigation:

    • Block outbound DNS/HTTP requests from the database.
    • Use network monitoring tools to detect unusual outbound traffic.

1.2. Boolean-Based Blind SQL Injection

This method determines true or false conditions based on subtle changes in the application's behavior.

  • Example Payload:
  ' AND 1=1 -- True condition  
  ' AND 1=2 -- False condition  

Les différences de réponse indiquent si la condition injectée est vraie ou fausse.

  • Usage:

    Les attaquants énumèrent les bases de données, les tables ou les colonnes un bit à la fois en utilisant des requêtes conditionnelles.

  • atténuation :

    • Utilisez des requêtes paramétrées ou des frameworks ORM.
    • Déployer les pare-feu d'application Web (WAFS) avec des ensembles de règles pour la détection d'injection SQL aveugle.

1.3. Injection SQL aveugle basée sur le temps

Cette technique utilise des retards pour déduire les données. L'attaquant observe combien de temps le serveur prend pour répondre.

  • Exemple de charge utile :
  SELECT IF(1=1, SLEEP(5), 0); -- Delays response by 5 seconds  
  • Impact:

    Les requêtes lentes peuvent paralyser les performances du serveur, provoquant un déni de service.

  • atténuation :

    • Utilisez la limitation de taux pour bloquer les demandes excessives.
    • Surveillez et terminez les requêtes de longue durée.

1.4. Injection SQL de second ordre

Dans cette technique, les charges utiles malveillantes sont stockées dans la base de données et déclenchées lors d'une action ultérieure, comme une revue administrative.

  • Exemple de scénario :

    • L'attaquant insère cette charge utile dans un formulaire:
    Robert'); DROP TABLE users; --  
    
    • Lors d'une revue, l'application exécute la charge utile stockée.
  • atténuation :

    • Échapper et désinfecter les entrées à chaque étape, même pendant la récupération.
    • Utilisez des fonctions de base de données immuables pour empêcher l'exécution de scripts malveillants.

2. Études de cas du monde réel

Étude de cas 1: vulnérabilité Magento (CVE-2019-8144)

Incident:

  • Les attaquants ont exploité une vulnérabilité d'injection SQL basée sur le temps dans la plate-forme de commerce électronique de Magento.
  • Ils ont contourné l'authentification et ont accédé à des données clients sensibles.

Les leçons d'atténuation :

  • Patchez régulièrement les logiciels pour aborder les vulnérabilités connues.
  • Effectuez des tests de sécurité sur les plugins et extensions tiers.

Étude de cas 2: Shopify (2020 Bug Bounty)

Incident:

  • Un chercheur en sécurité a identifié une vulnérabilité d'injection OOB SQL dans l'API de Shopify, qui pourrait fuir des données sensibles via DNS.
  • Ceci a été capturé avant l'exploitation, grâce au programme Boug Bounty de Shopify.

Les leçons d'atténuation :

  • Investissez dans des programmes de primes de bogues pour encourager les rapports de vulnérabilité éthiques.
  • Tirez parti des passerelles API pour appliquer la validation stricte de la requête.

3. Stratégies défensives avancées

3.1. Analyse de requête dynamique

Utilisez des outils qui surveillent les requêtes de base de données pour des modèles inhabituels ou une complexité excessive.

  • Outils:
    • sqlmap: pour tester vos systèmes.
    • Sécurité aqua ou imperva: pour la protection de l'exécution.

3.2. Validation du contexte

appliquer des règles de validation basées sur le contexte:

  • Pages de connexion : valider les informations d'identification pour autoriser uniquement les valeurs alphanumériques.
  • Rechercher des formulaires : désinfecter les entrées pour exclure les opérateurs SQL comme Select ou Union.

3.3. Configurations spécifiques à la base de données

  • Activer des fonctionnalités comme mode de détection d'injection SQL dans mysql.
  • Utilisez des filtres SecComp dans PostgreSQL pour restreindre les opérations dangereuses.

3.4. Test de pénétration continue

  • Simuler des attaques pour identifier les vulnérabilités avant que les attaquants ne le fassent.
  • Automatiser avec des pipelines CI / CD à l'aide d'outils comme OWASP ZAP ou Burp Suite.

4. Défi pratique: simulation d'exploitation et défense

Scénario

Un site de commerce électronique permet aux utilisateurs de rechercher des produits à l'aide d'un champ de saisie. Le tester et le sécuriser.

étapes :

  1. Injecter une charge utile pour détecter la vulnérabilité de l'injection SQL:
   ' OR '1'='1' --  
  1. Si le site est vulnérable, utilisez des outils automatisés comme SQLMAP pour simuler l'extraction de données.

correction défensive :

  • implémenter des instructions préparées:
  $stmt = $pdo->prepare("SELECT * FROM products WHERE name = :name");
  $stmt->execute(['name' => $product_name]);
  • Valider l'entrée à l'aide d'un modèle strict:
  import re
  pattern = r"^[a-zA-Z0-9 ] $"
  if not re.match(pattern, user_input):
      raise ValueError("Invalid input!")

5. Tendances des attaques d'injection SQL

5.1. Cloud exploits

Les bases de données basées sur le cloud sont de plus en plus ciblées en raison des erreurs de conformité.

5.2. Vulnérabilités API

Avec la montée des microservices, les API mal conçues sont un point d'entrée pour les attaquants.

5.3. Attaques conduites à AI

Les outils automatisés exploitent l'IA pour élaborer des charges utiles d'injection complexes.


Réflexions finales

Cette session avancée met en évidence la nature évolutive de l'injection SQL et l'importance de la défense proactive. En comprenant des techniques de pointe et en mettant en œuvre des mesures de sécurité robustes, vous pouvez réduire considérablement le risque d'exploitation.

~ trixsec

Déclaration de sortie Cet article est reproduit à: https://dev.to/trixsec/how-todetect-and-defend-against-sql-injection-attacks-part-6-advanced-sql-injection-techniques-20mf?1 S'il y a une infraction, veuillez contacter [email protected] pour le enlever.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3