Méthodologies de piratage d'applications Web

Les applications Web sont des programmes qui permettent aux utilisateurs d'interagir avec les serveurs Web. Ils sont exécutés sur des navigateurs Web à l'aide de scripts côté client et côté serveur.

L'architecture de l'application Web se compose de:

  • Couche client / présentation
  • Couche de logique métier
  • Couche de base de données

La couche client / présentation se compose de périphériques sur lesquels l'application s'exécute. Ces appareils comprennent les ordinateurs portables, les tablettes, les smartphones, etc.


La couche de logique métier comporte deux couches:


  • Couche logique du serveur Web qui se compose de composants qui gèrent les demandes et réponses, et le codage qui lit et renvoie les données au navigateur



  • Couche de logique métier qui contient les données d'application

La couche de base de données se compose d'une couche B2B et d'un serveur de base de données dans lequel les données de l'organisation sont stockées.



Menaces et attaques des applications Web

OWASP est une communauté ouverte dédiée à permettre aux organisations de concevoir, développer, acquérir, exploiter et maintenir des applications fiables.

Le projet OWASP Top 10 produit un document décrivant les 10 principales menaces de sécurité des applications.


Le dernier document répertorie les 10 principales menaces de sécurité suivantes:

Injection

L'attaque par injection est une attaque dans laquelle l'attaquant injecte des données malveillantes dans des commandes et des requêtes qui sont ensuite exécutées dans l'application.

Cette attaque cible les champs de saisie ou les points d'entrée de l'application et permet aux attaquants d'extraire des informations sensibles.

Les attaques par injection les plus couramment utilisées sont:


  • Injection SQL est une attaque dans laquelle l'attaquant injecte des requêtes SQL malveillantes dans l'application
  • Injection de commande est une attaque dans laquelle l'attaquant injecte des commandes malveillantes dans l'application
  • Injection LDAP est une attaque dans laquelle l'attaquant injecte des instructions LDAP malveillantes dans l'application

Authentification cassée

L'authentification interrompue fait référence aux menaces et aux vulnérabilités dans l'authentification et la gestion de session.

Les attaquants exploitent ces vulnérabilités pour usurper l'identité de leurs cibles.

Certaines des vulnérabilités existantes incluent:

  • ID de session dans les URL
  • Mots de passe non chiffrés
  • Délais d'expiration mal définis

Exposition de données sensibles

Des menaces d'exposition de données sensibles se produisent dans les applications qui utilisent un code de cryptage faible pour le cryptage et le stockage des données.


Cette vulnérabilité permet aux attaquants de déchiffrer facilement le chiffrement et de voler les données.

Entité externe XML

L'attaque d'entité externe XML est une attaque dans laquelle l'attaquant tire parti d'un analyseur XML mal configuré, ce qui oblige l'application à analyser l'entrée XML provenant d'une source non approuvée.

Contrôle d'accès cassé

Le contrôle d'accès interrompu fait référence aux menaces et aux vulnérabilités du contrôle d'accès. Les attaquants exploitent ces vulnérabilités pour contourner l'authentification et obtenir des privilèges d'administrateur.

Mauvaise configuration de la sécurité

Une mauvaise configuration de la sécurité fait référence à des vulnérabilités qui existent dans les applications dont la pile d'applications est mal configurée.


Certains des problèmes qui causent des vulnérabilités de mauvaise configuration de la sécurité incluent:

  • Champs de saisie non validés
  • Manipulation des formulaires et des paramètres
  • Mauvaise gestion des erreurs

Scripts intersites (XSS)

L’attaque Cross-Site Scripting est une attaque dans laquelle l’attaquant injecte des scripts dans des pages Web qui sont exécutées sur le système de la cible.

Désérialisation non sécurisée

La désérialisation non sécurisée fait référence à une vulnérabilité que les attaquants exploitent en injectant un code malveillant dans des données sérialisées qui sont ensuite envoyées à la cible.

En raison de la vulnérabilité de désérialisation non sécurisée, les données sérialisées malveillantes sont désérialisées sans que le code malveillant ne soit détecté, ce qui permet à l'attaquant d'obtenir un accès non autorisé au système.

Utilisation de composants avec des vulnérabilités connues

L'utilisation de composants avec des vulnérabilités connues permet aux attaquants de les exploiter et d'exécuter des attaques.

Journalisation et surveillance insuffisantes

Une journalisation et une surveillance insuffisantes se produisent lorsque l'application ne parvient pas à consigner les événements et activités malveillants. Cela entraîne des difficultés pour détecter les attaques sur le système.



Méthodologie de piratage

La méthodologie de piratage d'applications Web fournit aux attaquants les étapes à suivre pour exécuter une attaque réussie.

Ces étapes sont:

Empreinte de l'infrastructure Web

L'infrastructure Web d'empreinte aide l'attaquant à recueillir des informations sur l'infrastructure Web cible et à identifier les vulnérabilités qui peuvent être exploitées.

Dans ce processus, l'attaquant effectue:

  • Découverte de serveurs pour en savoir plus sur les serveurs qui hébergent l'application
  • Découverte de service pour déterminer quel service peut être attaqué
  • Identification du serveur pour obtenir des informations sur le serveur telles que la version et la marque
  • Découverte de contenu caché pour découvrir des contenus cachés

Attaque de serveur Web

Les informations recueillies lors de l'étape d'empreinte permettent aux pirates de les analyser, de trouver des vulnérabilités à exploiter et d'utiliser diverses techniques pour lancer des attaques sur le serveur.

Analyse des applications Web

Les attaquants analysent l'application Web cible pour identifier ses vulnérabilités et les exploiter.

Pour pirater l'application, les attaquants doivent:

  • Identifier les points d'entrée pour l'entrée utilisateur
  • Identifier les technologies côté serveur utilisées pour générer des pages Web dynamiques
  • Identifier les fonctionnalités côté serveur
  • Identifier les zones d'attaque et les vulnérabilités associées

Contournement des contrôles côté client

Les attaquants tentent de contourner le contrôle côté client des entrées et des interactions des utilisateurs.

Pour contourner les contrôles côté client, les attaquants tentent de:

  • Attaquer les champs de formulaire cachés
  • Attaquer les extensions de navigateur
  • Revoir le code source

Attaques d'authentification

Les attaquants tentent d'exploiter les vulnérabilités qui existent dans les mécanismes d'authentification.

En exploitant ces vulnérabilités, les attaquants sont en mesure d'effectuer:

  • Énumération du nom d'utilisateur
  • Attaques par mot de passe
  • Attaques de session
  • Cookie exploitation

Attaques d'autorisation

L'attaque par autorisation est une attaque dans laquelle l'attaquant accède à l'application via un compte légitime disposant de privilèges limités, puis utilise ce compte pour élever les privilèges.

Pour effectuer une attaque d'autorisation, l'attaquant utilise les sources suivantes:

  • DÉTESTER
  • Altération des paramètres
  • Données POST
  • En-têtes HTTP
  • Biscuits
  • Balises cachées

Attaques de contrôle d'accès

Les attaquants analysent le site Web cible pour tenter de connaître les détails du contrôle d'accès mis en œuvre.

Au cours de ce processus, les attaquants tentent de savoir qui a accès à quels ensembles de données, qui a quel niveau d'accès et comment augmenter les privilèges.

Attaques de gestion de session

Les attaquants exploitent les vulnérabilités de l'authentification et de la gestion de session pour usurper l'identité de leurs cibles.

Le processus de génération d'un jeton de session valide se compose de deux étapes:

  • Prédiction de jeton de session
  • Falsification du jeton de session

Avec un jeton valide, les attaquants peuvent effectuer des attaques telles que MITM, le détournement de session et la relecture de session.

Attaques par injection

Les attaquants tirent parti des entrées de formulaire non validées pour injecter des requêtes et des commandes malveillantes.

Exploitation de la vulnérabilité de la logique d'application

De mauvaises compétences en codage peuvent rendre l'application vulnérable en raison de ses défauts de logique. Si l'attaquant parvient à identifier ces failles, il est alors en mesure de les exploiter et de lancer une attaque.

Attaques de connexion à la base de données

Les attaquants exécutent des attaques sur la connexion à la base de données pour prendre le contrôle de la base de données et ainsi accéder à des informations sensibles.

Attaques de services Web

Les attaquants ciblent les services Web intégrés dans l'application Web pour trouver et exploiter les vulnérabilités de la logique métier de l'application.

Ils utilisent ensuite diverses techniques pour exécuter une attaque sur l'application.