Your SlideShare is downloading. ×
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
ASFWS 2011 - MiniMySqlat0r Reloaded
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

ASFWS 2011 - MiniMySqlat0r Reloaded

509

Published on

Application Security Forum 2011 …

Application Security Forum 2011
27.10.2011 - Yverdon-les-Bains (Switzerland)
Speaker: Julien Probst

Published in: Technology
2 Comments
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
509
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
20
Comments
2
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. MiniMySqlat0r reloadedAlain MowatIngénieur SécuritéSCRT Sàrl Application Security Forum Western Switzerland 27 octobre 2011 - HEIGVD Yverdon-les-Bains http://appsec-forum.ch
  • 2. $ whoami Ingénieur EPFL en Informatique Ingénieur Sécurité @ SCRT – Tests dintrusion – Sécurité des applications Web Application Security Forum - Western Switzerland 27.10.2011 2 - 2011
  • 3. Agenda / Objectifs Introduction – SQL, Injections, Types Sqlat0r – Détection, Exploitation – Web 2.0 • Crawler Ajax Conclusion Application Security Forum - Western Switzerland 27.10.2011 3 - 2011
  • 4. Introduction Structured Query Language – Communication avec une base de données – Sites Web utilisent SQL pour extraire le contenu des pages à afficher Exemple typique – SELECT * FROM news WHERE id=1 Application Security Forum - Western Switzerland 27.10.2011 4 - 2011
  • 5. Utilisation Application Security Forum - Western Switzerland 27.10.2011 5 - 2011
  • 6. Injection SQL Existent depuis plus de 10 ans – Reste une des attaques les plus ravageuses sur Internet – TOP 10 OWASP depuis 2004 Application Security Forum - Western Switzerland 27.10.2011 6 - 2011
  • 7. Et pourtant... Application Security Forum - Western Switzerland 27.10.2011 7 - 2011
  • 8. Injection SQL Faille permettant à un attaquant de modifier la requête SQL envoyée par un serveur Web à la BDD – Dû à une mauvaise validation des paramètres Exemples – SELECT * FROM news WHERE id = -1 – SELECT * FROM news WHERE id = 1 or 1=1 – SELECT * FROM news WHERE id = 1 union ... Application Security Forum - Western Switzerland 27.10.2011 8 - 2011
  • 9. Types de faille Essentiellement 3 méthodes pour extraire les informations de la base – “Error-based” • Messages derreur affichés révélant les informations convoitées – Failles “union” • Attaquant peut concaténer les résultats de plusieurs requêtes qui se retrouvent sur la page – Failles “blind” • La requête est effectuée mais le résultat jamais 27.10.2011 affiché Application Security Forum - Western Switzerland 9 - 2011
  • 10. Déroulement dattaque Recherche dune faille – Où est la faille ? Identification de la faille – Quel type de faille ? Exploitation de la faille – Extraction des données Application Security Forum - Western Switzerland 27.10.2011 10 - 2011
  • 11. Recherche dune faille Découvrir comment on peut interagir avec le site – Quels sont les paramètres ? • URL (GET), Formulaire (POST), Cookies Application Security Forum - Western Switzerland 27.10.2011 11 - 2011
  • 12. Recherche dune faille Or 1=1 ? – Non non non • Pas toujours de différence • Détecté par la plupart des WAF/IDS/IPS Utiliser des requêtes donnant des résultats différents – AND 1=1 (aucun changement) – AND 1=2 (toujours faux, aucun résultat) • Si les pages générées ne sont pas identiques, grande probabilité Forum -failleSwitzerland Application Security de Western 27.10.2011 12 - 2011
  • 13. Recherche dune faille Requête initiale Requête AND 1=1 Requête AND 1=2 Application Security Forum - Western Switzerland27.10.2011 13 - 2011
  • 14. Obfuscation AND 1=1 – Souvent détecté par un WAF/IPS/IDS AND 1<2 AND/*toto*/0x41!=0x42 HaVinG%0a1337=1337 Application Security Forum - Western Switzerland 27.10.2011 14 - 2011
  • 15. Identification de la faille Détecter si cest un champ numérique ou texte – Si texte, détecter le type de quote Analyser quel type de commentaire est possible – /**/, --, #, %00 Application Security Forum - Western Switzerland 27.10.2011 15 - 2011
  • 16. Identification de la faille Déterminer nombre de colonnes de la requête initiale – Permet de créer des unions correctes – Id=1 order by 1,2,3,4,...,X Déterminer si une colonne est affichée sur la page – UNION SELECT toto,titi,tata,...,X – Sinon cest une injection “blind” Application Security Forum - Western Switzerland 27.10.2011 16 - 2011
  • 17. Exploitation de la faille Explorer le contenu de la base de données – MySQL : information_schema – MSSQL : sysobjects – Oracle : all_tab_columns – Bruteforcer le nom des tables/colonnes à laide dun dictionnaire Application Security Forum - Western Switzerland 27.10.2011 17 - 2011
  • 18. Démonstration Application Security Forum - Western Switzerland27.10.2011 18 - 2011
  • 19. SQLat0r Automatisation de la recherche et exploitation de failles type UNION Buts – Simple et intuitif – Couverture dun maximum de failles Application Security Forum - Western Switzerland 27.10.2011 19 - 2011
  • 20. Fonctionnement Un module de détection – Crawling du site – Détection de paramètres – Détection dinjections Un module dexploitation – Exploration de la base de données Application Security Forum - Western Switzerland 27.10.2011 20 - 2011
  • 21. Crawler Crawler traditionnel – Détecte les pages liées de manière statiques – <a href=””> – Récupère liste de pages, de paramètres, ... – Impossible de détecter les pages chargées de manière dynamique • Ajax • XMLHttpRequest Application Security Forum - Western Switzerland 27.10.2011 21 - 2011
  • 22. Crawler 2.0 Comment détecter les pages chargées dynamiquement ? – Analyse statique... – Analyse dynamique • Exécution du code et analyse Application Security Forum - Western Switzerland 27.10.2011 22 - 2011
  • 23. Idée 1 Interpréteur JavaScript – Extraction de tout code JS – Insertion dans linterpréteur – Interception des appels à XMLHttpRequest() Application Security Forum - Western Switzerland 27.10.2011 23 - 2011
  • 24. Idée 2 “Browsing forcé” – Chargement de la page dans un mini- navigateur – Recherche de tous les events de la page • onload, onmouseover, onclick, ... – Exécution de chaque event dans le contexte de la page Interception des requêtes par un Proxy Application Security Forum - Western Switzerland 27.10.2011 24 - 2011
  • 25. Problèmes Forced Browsing – “this” • updateTable(this) Paramètres vides par défaut – Requièrent une interaction de lutilisateur • Propositions, ... Application Security Forum - Western Switzerland 27.10.2011 25 - 2011
  • 26. Détection de vulnérabilité Algorithme de recherche des paramètres vulnérables – Base = contenu de la page “standard” – pTrue = contenu de la page “AND 1=1” – pFalse = contenu de la page “AND 1=2” – if(diff(Base,pTrue) < diff(pTrue,pFalse)) • Vulnerable ! diff basé sur le nombres de mots différents sur les deux pages Application Security Forum - Western Switzerland 27.10.2011 26 - 2011
  • 27. Détection de vulnérabilité Ajout dune “tolérance” – Chargement dune même page pas toujours égale • Publicité • Commentaires • ... Application Security Forum - Western Switzerland 27.10.2011 27 - 2011
  • 28. Exploitation Récupération du schéma de la base sous la forme dun arbre – Navigation simple dans la BDD Application Security Forum - Western Switzerland 27.10.2011 28 - 2011
  • 29. Démonstration Application Security Forum - Western Switzerland27.10.2011 29 - 2011
  • 30. Conclusion Outil simple et efficace – Point & Click Crawler Web 2.0 – Nécessaire pour tout scanner actuel Application Security Forum - Western Switzerland 27.10.2011 30 - 2011
  • 31. © flickr.com/horiavarlan Vos questions ? Application Security Forum - Western Switzerland27.10.2011 31 - 2011
  • 32. Merci! Alain Mowat alain@scrt.ch @plopz0r SLIDES A TELECHARGER PROCHAINEMENT: http://slideshare.net/ASF-WS Application Security Forum - Western Switzerland27.10.2011 32 - 2011

×