Facebook Pixel
Searching...
Français
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
The Web Application Hacker's Handbook

The Web Application Hacker's Handbook

Discovering and Exploiting Security Flaws
par Dafydd Stuttard 2007 722 pages
4.23
1k+ évaluations
Écouter
Écouter

Points clés

1. La sécurité des applications web est un champ de bataille critique

À bien des égards, la sécurité des applications web est aujourd'hui le champ de bataille le plus significatif entre les attaquants et ceux qui disposent de ressources informatiques et de données à défendre, et il est probable que cela demeure ainsi pour un avenir prévisible.

Enjeux élevés. Les applications web sont au cœur des affaires modernes, traitant des données sensibles et des transactions financières. Cela en fait des cibles privilégiées pour les attaquants cherchant à obtenir un gain financier, des informations personnelles ou à provoquer des perturbations. Les conséquences d'une attaque réussie peuvent être sévères, engendrant des pertes financières, des dommages à la réputation et des responsabilités légales.

L'insécurité est répandue. Malgré la prise de conscience des problèmes de sécurité, de nombreuses applications web restent vulnérables. Un pourcentage significatif d'applications testées est affecté par des vulnérabilités courantes telles que l'authentification défaillante, des problèmes de contrôle d'accès, l'injection SQL et le cross-site scripting. Cela souligne la nécessité d'une vigilance continue et de mesures de sécurité proactives.

Un paysage de menaces en évolution. Les méthodes utilisées pour attaquer les applications web évoluent constamment, avec de nouvelles techniques et vulnérabilités découvertes régulièrement. Les défenses doivent s'adapter à ces changements pour rester efficaces. Cela nécessite des recherches continues, de la formation et des investissements dans l'expertise en sécurité.

2. Les mécanismes de défense fondamentaux forment la surface d'attaque

Si connaître son ennemi est la première règle de la guerre, alors comprendre ces mécanismes en profondeur est le principal prérequis pour pouvoir attaquer efficacement les applications.

Les mécanismes de défense sont des cibles. Les applications web emploient des mécanismes de défense fondamentaux pour se protéger contre les attaques, notamment la gestion de l'accès utilisateur, des entrées et des attaquants, ainsi que la gestion de l'application elle-même. Cependant, ces mécanismes constituent également la principale surface d'attaque de l'application, en faisant des zones cruciales à explorer pour les attaquants.

Mécanismes interconnectés. L'accès utilisateur est généralement géré par l'authentification, la gestion des sessions et le contrôle d'accès. Ces mécanismes sont interdépendants, et une faiblesse dans l'un d'eux peut compromettre l'ensemble du système. Par exemple, un défaut dans l'authentification peut permettre à un attaquant de contourner les contrôles d'accès.

La gestion des entrées est cruciale. Une gestion sécurisée des entrées utilisateur est essentielle pour prévenir les attaques. Cela implique de valider, de désinfecter et d'encoder les données fournies par l'utilisateur pour empêcher l'injection de code malveillant dans l'application. Différentes approches de gestion des entrées, telles que "rejeter les mauvais connus" et "accepter les bons connus", ont des niveaux d'efficacité variés.

3. Le protocole HTTP est la base de la communication web

Le protocole de transfert hypertexte (HTTP) est le protocole de communication central utilisé pour accéder au World Wide Web et est utilisé par toutes les applications web d'aujourd'hui.

Comprendre HTTP est essentiel. Le protocole de transfert hypertexte (HTTP) est la fondation de la communication des applications web. Une compréhension approfondie des requêtes HTTP, des réponses, des méthodes, des en-têtes et des codes d'état est essentielle pour attaquer et défendre les applications web.

Les méthodes HTTP comptent. Le choix de la méthode HTTP (GET, POST, PUT, DELETE, etc.) peut avoir des implications en matière de sécurité. Par exemple, les données sensibles ne devraient pas être transmises dans la chaîne de requête URL d'une requête GET, car elles pourraient être enregistrées ou mises en cache.

Les cookies sont critiques. Les cookies HTTP sont utilisés pour maintenir l'état et suivre les utilisateurs à travers plusieurs requêtes. Comprendre comment les cookies sont définis, transmis et gérés est crucial pour identifier les vulnérabilités de gestion des sessions.

4. Les applications web utilisent diverses technologies côté serveur

Une large gamme de plateformes et d'outils de développement est disponible pour faciliter le développement d'applications puissantes par des débutants relativement expérimentés, et une grande quantité de code open source et d'autres ressources est disponible pour être intégrée dans des applications sur mesure.

Variété de technologies. Les applications web utilisent une large gamme de technologies côté serveur, y compris des langages de script (PHP, Python, Perl), des plateformes d'applications web (ASP.NET, Java), des serveurs web (Apache, IIS) et des bases de données (MySQL, Oracle). Chaque technologie présente ses propres vulnérabilités et vecteurs d'attaque uniques.

Plateforme Java. La plateforme Java, Édition Entreprise (Java EE) est une norme de facto pour les applications d'entreprise à grande échelle. Elle se prête à des architectures multitier et équilibrées en charge et est bien adaptée au développement modulaire et à la réutilisation de code.

ASP.NET. ASP.NET est le framework d'application web de Microsoft et est un concurrent direct de la plateforme Java. Les applications ASP.NET peuvent être écrites dans n'importe quel langage .NET, tel que C# ou VB.NET.

5. La fonctionnalité côté client permet des interfaces utilisateur riches

Les navigateurs d'aujourd'hui sont hautement fonctionnels, permettant de créer des interfaces utilisateur riches et satisfaisantes.

Technologies côté client. Les applications web utilisent diverses technologies côté client pour créer des interfaces utilisateur riches et interactives, y compris HTML, CSS, JavaScript et des extensions de navigateur. Ces technologies peuvent également être exploitées pour attaquer les utilisateurs.

HTML et formulaires. Les formulaires HTML sont le principal mécanisme pour capturer les entrées utilisateur et les soumettre au serveur. Comprendre comment fonctionnent les formulaires, y compris les différents types d'encodage et les champs cachés, est essentiel pour identifier les vulnérabilités.

JavaScript et Ajax. JavaScript permet des mises à jour dynamiques et une communication asynchrone avec le serveur, améliorant l'expérience utilisateur. Cependant, il introduit également de nouveaux risques de sécurité, tels que le XSS basé sur le DOM et les attaques inter-domaines.

6. Les schémas d'encodage sont essentiels pour une gestion sécurisée des données

Les applications web emploient plusieurs schémas d'encodage différents pour leurs données.

Schémas d'encodage. Les applications web utilisent divers schémas d'encodage pour représenter les données en toute sécurité, y compris l'encodage URL, l'encodage Unicode, l'encodage HTML et l'encodage Base64. Comprendre ces schémas est crucial pour élaborer des attaques efficaces et contourner les filtres de validation des entrées.

Encodage URL. L'encodage URL est utilisé pour encoder des caractères spéciaux dans les URL, tels que les espaces, les points d'interrogation et les esperluettes. Les attaquants peuvent utiliser l'encodage URL pour contourner les filtres qui bloquent certains caractères.

Encodage HTML. L'encodage HTML est utilisé pour représenter des caractères spéciaux dans les documents HTML, tels que les chevrons et les guillemets. Les attaquants peuvent utiliser l'encodage HTML pour contourner les filtres qui bloquent les balises et attributs HTML.

7. Cartographier l'application révèle des vulnérabilités

La première étape du processus d'attaque d'une application consiste à rassembler et examiner certaines informations clés à son sujet pour mieux comprendre à quoi vous êtes confronté.

La cartographie est cruciale. Cartographier le contenu et la fonctionnalité de l'application est la première étape de toute attaque. Cela implique d'énumérer toutes les pages accessibles, les formulaires et les paramètres, ainsi que d'identifier les technologies utilisées et les mécanismes de sécurité de l'application.

Techniques de cartographie. Les techniques de cartographie incluent le spidering web, le spidering dirigé par l'utilisateur et la découverte de contenu caché par des techniques de force brute et des sources d'informations publiques.

Analyser l'application. Analyser l'application implique d'identifier les points d'entrée pour les entrées utilisateur, les technologies côté serveur et la surface d'attaque exposée par l'application. Ces informations sont utilisées pour formuler un plan d'attaque.

8. Contourner les contrôles côté client est souvent trivial

Étant donné que le client est en dehors du contrôle de l'application, les utilisateurs peuvent soumettre des entrées arbitraires à l'application côté serveur.

Les contrôles côté client sont peu fiables. Les contrôles côté client, tels que les vérifications de validation des entrées et les éléments de formulaire désactivés, sont facilement contournés par les attaquants. L'application doit toujours valider les données côté serveur pour garantir la sécurité.

Champs de formulaire cachés et cookies. Les champs de formulaire cachés et les cookies sont souvent utilisés pour transmettre des données via le client. Les attaquants peuvent modifier ces valeurs pour manipuler le comportement de l'application.

Extensions de navigateur. Les technologies d'extensions de navigateur, telles que les applets Java et les contrôles ActiveX, peuvent également être ciblées pour contourner les contrôles côté client.

9. Les mécanismes d'authentification sont sujets à des défauts de conception

Les mécanismes d'authentification souffrent d'une large gamme de défauts tant dans la conception que dans l'implémentation.

L'authentification est critique. L'authentification est un mécanisme de sécurité fondamental qui vérifie l'identité d'un utilisateur. Cependant, les mécanismes d'authentification sont souvent sujets à des défauts de conception, tels que des politiques de mot de passe faibles, des connexions pouvant être forcées par force brute et des messages d'échec trop détaillés.

Qualité des mots de passe. Les applications devraient imposer des politiques de mot de passe strictes pour empêcher les utilisateurs de choisir des mots de passe faibles. Cela inclut l'exigence d'une longueur minimale, d'un mélange de types de caractères et d'interdire l'utilisation de mots courants ou d'informations personnelles.

Verrouillage de compte. Les applications devraient mettre en œuvre des mécanismes de verrouillage de compte pour prévenir les attaques par force brute. Cependant, ces mécanismes doivent être soigneusement conçus pour éviter les fuites d'informations et les vulnérabilités de déni de service.

10. La gestion des sessions nécessite une gestion robuste des jetons

Le mécanisme de gestion des sessions dépend fortement de la sécurité de ses jetons.

La gestion des sessions est essentielle. La gestion des sessions est utilisée pour suivre les utilisateurs à travers plusieurs requêtes. La sécurité du mécanisme de gestion des sessions dépend de la robustesse de ses jetons.

Génération de jetons. Les jetons de session doivent être générés à l'aide d'un générateur de nombres aléatoires fort pour empêcher les attaquants de prédire ou de deviner des jetons valides.

Gestion des jetons. Les jetons de session doivent être protégés tout au long de leur cycle de vie pour prévenir tout accès non autorisé. Cela inclut la transmission des jetons via HTTPS, leur stockage sécurisé sur le serveur et la mise en œuvre d'une terminaison de session appropriée.

11. Les contrôles d'accès doivent être soigneusement appliqués

Le mécanisme de contrôle d'accès doit généralement mettre en œuvre une logique fine, avec différentes considérations pertinentes pour différentes zones de l'application et différents types de fonctionnalités.

Le contrôle d'accès est fondamental. Les contrôles d'accès déterminent quels utilisateurs sont autorisés à accéder à des données et des fonctionnalités spécifiques. Les contrôles d'accès défaillants sont une vulnérabilité courante qui peut conduire à un accès non autorisé et à une élévation de privilèges.

Types de contrôle d'accès. Les contrôles d'accès peuvent être verticaux (restreignant l'accès à différents niveaux de fonctionnalité), horizontaux (restreignant l'accès à des ressources de données spécifiques) ou dépendants du contexte (restreignant l'accès en fonction de l'état de l'application).

Défauts courants. Les défauts courants de contrôle d'accès incluent des fonctionnalités non protégées, des fonctions basées sur des identifiants, des fonctions à plusieurs étapes et des fichiers statiques.

12. Les composants back-end peuvent être des passerelles pour les attaques

Si une vulnérabilité existe au sein d'une application web, un attaquant sur Internet public peut être en mesure de compromettre les systèmes back-end essentiels de l'organisation simplement en soumettant des données élaborées depuis son navigateur web.

Les composants back-end sont des cibles. Les applications web interagissent souvent avec des composants back-end, tels que des bases de données, des serveurs de messagerie et des systèmes d'exploitation. Ces composants peuvent être des passerelles pour des attaques si les données fournies par l'utilisateur ne sont pas correctement validées.

Injection de commandes OS. Les vulnérabilités d'injection de commandes OS permettent aux attaquants d'exécuter des commandes arbitraires sur le système d'exploitation du serveur.

Injection SMTP. Les vulnérabilités d'injection SMTP permettent aux attaquants d'envoyer des messages électroniques arbitraires via le serveur de messagerie de l'application.

13. La révision du code source révèle des vulnérabilités cachées

Approches de la révision de code

La révision de code est précieuse. Passer en revue le code source de l'application peut révéler des vulnérabilités cachées qui sont difficiles à détecter par des tests en boîte noire. Cela inclut des défauts de conception, des erreurs logiques et des problèmes de configuration.

Approches de la révision de code. Les approches de la révision de code incluent le traçage des données contrôlables par l'utilisateur, la recherche de signatures de vulnérabilités courantes et la réalisation d'une révision ligne par ligne du code à risque.

Outils pour la navigation dans le code. Des outils pour la navigation dans le code, tels que Source Insight, peuvent faciliter le processus de révision de code en fournissant des fonctionnalités pour naviguer dans la base de code, rechercher des expressions spécifiques et afficher des informations contextuelles.

14. L'automatisation est la clé des attaques personnalisées

Les hackers d'applications web les plus performants vont plus loin dans leurs attaques personnalisées et trouvent des moyens de les automatiser pour les rendre plus faciles, plus rapides et plus efficaces.

L'automatisation améliore les attaques. Automatiser les attaques personnalisées peut considérablement améliorer leur rapidité, leur efficacité et leur couverture. Cela implique d'utiliser des outils et des scripts pour effectuer des tâches telles que l'énumération d'identifiants, la collecte de données et le fuzzing pour des vulnérabilités courantes.

Burp Intruder. Burp Intruder est un outil puissant pour automatiser les attaques personnalisées. Il vous permet de définir des positions de charge utile, de choisir des sources de charge utile et d'analyser les réponses de l'application.

Obstacles à l'automatisation. Les obstacles à l'automatisation incluent les mécanismes de gestion des sessions et les contrôles CAPTCHA. Cependant, ces obstacles peuvent souvent être contournés en affinant vos outils automatisés ou en trouvant des défauts dans les défenses de l'application.

15. Exploiter la divulgation d'informations

Des messages d'erreur trop verbeux peuvent grandement aider les utilisateurs malveillants à faire avancer leurs attaques contre l'application.

La divulgation d'informations est utile aux attaquants. Les vulnérabilités de divulgation d'informations peuvent fournir aux attaquants des informations précieuses sur le fonctionnement interne de l'application, telles que les identifiants de base de données, les chemins de fichiers et les versions de logiciels. Ces informations peuvent être utilisées pour affiner les attaques et augmenter les chances de succès.

Exploitation des messages d'erreur. Les messages d'erreur peuvent révéler des informations sensibles sur la configuration, le code et les données de l'application. Les applications devraient gérer les erreurs avec soin et éviter de renvoyer des messages d'erreur trop détaillés aux utilisateurs.

Collecte d'informations publiées. Les informations disponibles publiquement, telles que les résultats des moteurs de recherche et les archives web, peuvent également fournir des informations précieuses sur l'historique, la fonctionnalité et les vulnérabilités de l'application.

16. Attaquer les applications compilées natives

Vulnérabilités de débordement de tampon

Le code natif introduit des risques uniques. Les applications web qui utilisent du code compilé natif, tel que C/C++, sont susceptibles de vulnérabilités logicielles classiques comme les débordements de tampon, les vulnérabilités d'entier et les bogues de format de chaîne.

Débordements de tampon. Les débordements de tampon se produisent lorsqu'une application copie des données contrôlables par l'utilisateur dans un tampon mémoire qui n'est pas assez grand pour les accueillir. Cela peut conduire à l'exécution de code arbitraire sur le serveur.

Vulnérabilités d'entier. Les vulnérabilités d'entier se produisent lorsqu'une application effectue des opérations arithmétiques sur des valeurs entières sans validation appropriée, entraînant des débordements ou des erreurs de signe.

17. Attaquer l'architecture de l'application

Les applications web ont changé tout cela. Pour qu'une application soit accessible par ses utilisateurs, le pare-feu périmétrique doit autoriser les connexions entrantes au serveur via HTTP ou HTTPS.

L'architecture compte. L'architecture d'une application web peut avoir un impact significatif sur sa sécurité. Une architecture mal conçue peut exposer l'application à diverses attaques, telles que l'exploitation de la confiance et la subversion de niveau.

Architectures en couches. Les architectures multitier, où l'application est divisée en couches de présentation, d'application et de données, peuvent améliorer la sécurité si elles sont correctement mises en œuvre. Cependant, elles peuvent également introduire de

Dernière mise à jour:

Avis

4.23 sur 5
Moyenne de 1k+ évaluations de Goodreads et Amazon.

Le Manuel du Hacker d'Applications Web est largement reconnu comme une ressource essentielle pour les professionnels de la sécurité web et les développeurs. Les lecteurs saluent sa couverture exhaustive des vulnérabilités et des techniques d'exploitation, bien que certains notent qu'il est légèrement obsolète. Ce livre est considéré comme technique mais accessible, offrant des conseils pratiques et des explications étape par étape. De nombreux critiques le trouvent révélateur et indispensable pour ceux qui évoluent dans ce domaine. Bien que certains critiquent sa longueur et son accent sur des outils spécifiques, la plupart s'accordent à dire qu'il s'agit d'un guide inestimable pour comprendre et améliorer la sécurité des applications web.

À propos de l'auteur

Dafydd Stuttard est un expert reconnu en sécurité des applications web et l'auteur principal de The Web Application Hacker's Handbook. Il est également le créateur de Burp Suite, un outil populaire de scan de vulnérabilités web et de tests d'intrusion. La vaste connaissance et l'expérience pratique de Stuttard dans ce domaine se reflètent dans son écriture, qui allie profondeur technique et explications claires. Son travail a considérablement contribué à l'avancement des pratiques et de l'éducation en matière de sécurité web. L'expertise de Stuttard est largement reconnue au sein de la communauté de la cybersécurité, et il continue d'être une figure influente dans le développement continu des techniques et des outils de sécurité des applications web.

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Ratings: Rate books & see your ratings
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 10
📜 Unlimited History
Free users are limited to 10
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Mar 1,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
50,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →