PySQLi - Virtualabs.fr
Transcription
PySQLi - Virtualabs.fr
PySQLi Framework d'injection de code SQL Meeting #Hackerzvoice – 3 novembre 2012 Plan (1/2) ● ● ● Les camés du SQL ☞ TOP 10 OWASP ☞ Rappels sur les injections ☞ Exploitations possibles Outils (non exhaustif) ☞ Sqlmap ☞ Havij ☞ Limitations Frameworks ☞ BBQSQL ☞ Limitations 2 Plan (2/2) ● ● ● PySQLi ☞ Historique ☞ Principe ☞ Exemple Exemples d'utilisation ☞ Formulaire anti-CSRF ☞ Ligne de commande ☞ Injection via protocole spécifique Questions 3 Les camés du SQL ● TOP 10 OWASP ☞ Une des vulnérabilités les plus exploitées ☞ Facile à exploiter ☞ Leaks sur pastebin Différents dox Navigateur Cerveau 2.0 Peut aussi servir à faire plein d'autres choses … Bypass d'authentification Elévation de privilèges Le café (naaah) 4 Injection SQL : rappels ● ● Différents modes d'exploitation ☞ Timing attack ☞ Inband (UNION SELECT ...) ☞ Blind (dichotomie) Différents DBMS ☞ Oracle ☞ MSSQL ☞ MySQL ☞ Informix ☞ PostgreSQL Exploitations possibles ● Extraction d'information ☞ Injection dans les paramètres (POST/GET) ☞ Injection dans les en-têtes HTTP ☞ Cookie User-Agent Injection dans les fichiers (via HTTP) ● Injection d'information ● Contournement d'authentification Outils existant ● ● Sqlmap ☞ Très fourni ☞ Permet d'exploiter un bon nombre de pages vulnérables ☞ Supporte différentes options d'attaque ☞ Must-have du pentester Havij ☞ Outil Windows Click&Exploit ☞ Développé par des gens peu fiables ☞ Disponible sous forme d'exécutable, difficile de savoir ce qu'il fait ☞ N00b ! Outils : limitations ● ● ● Pratiques ☞ Dump automatique ☞ Test des paramètres vulnérables MAIS ☞ Inutilisable dans le cas d'exploitations difficiles ☞ Injection autre part que dans des requêtes HTTP impossible ! Un framework serait plus utile … Frameworks ● ● BBQSQL ☞ Framework python ☞ Supporte plusieurs techniques d'injection ☞ PYTHON on vous dit ! Limitations ☞ Déjà plus fourni ☞ Facilite le développement d'exploit ☞ On peut faire mieux ? PySQLi ● ● ● Python SQL injection framework ☞ Python c'est bon, mangez-en ☞ Facile à améliorer/étendre ☞ Compréhensible Historique ☞ En développement depuis 3 ans ... ☞ Eprouvé en pentest Approche différente des frameworks actuels PySQLi : origine ● ● Constat ☞ Identification par l'erreur ou le comportement ☞ Contexte d'injection généralement connu Besoin ☞ Développer des exploits avancés ☞ Sqlmap suffit dans la plupart des cas Quand sqlmap ne passe pas, c'est la misèèèère Développer rapidement Framework Python PySQLi ● Principe ☞ Forge : moteur de génération de code SQL injecté ☞ Injecteur ☞ Trigger Exemple ● Exploitation d'une injection via URL Framework extensible ● Injection possible dans théoriquement n'importe quoi ☞ Ligne de commande ☞ Requêtes HTTP ☞ Protocoles réseau spéciaux ☞ (D)TC Exemples d'utilisation ● Demos ☞ Formulaire avec anti-CSRF ☞ Injection dans une ligne de commande ☞ Pas supporté par sqlmap … idem ! Injection dans un protocole d'authentification maison Téléchargement ● Disponible sous github ☞ https://github.com/sysdream/pysqli/ Questions ?id=' OR '1'='1 PySQLi Framework d'injection de code SQL Meeting #Hackerzvoice – 3 novembre 2012 Plan (1/2) ● ● ● Les camés du SQL ☞ TOP 10 OWASP ☞ Rappels sur les injections ☞ Exploitations possibles Outils (non exhaustif) ☞ Sqlmap ☞ Havij ☞ Limitations Frameworks ☞ BBQSQL ☞ Limitations 2 Plan (2/2) ● ● ● PySQLi ☞ Historique ☞ Principe ☞ Exemple Exemples d'utilisation ☞ Formulaire anti-CSRF ☞ Ligne de commande ☞ Injection via protocole spécifique Questions 3 Les camés du SQL ● TOP 10 OWASP ☞ Une des vulnérabilités les plus exploitées ☞ Facile à exploiter ☞ Leaks sur pastebin Différents dox Navigateur Cerveau 2.0 Peut aussi servir à faire plein d'autres choses … Bypass d'authentification Elévation de privilèges Le café (naaah) 4 Injection SQL : rappels ● ● Différents modes d'exploitation ☞ Timing attack ☞ Inband (UNION SELECT ...) ☞ Blind (dichotomie) Différents DBMS ☞ Oracle ☞ MSSQL ☞ MySQL ☞ Informix ☞ PostgreSQL Exploitations possibles ● Extraction d'information ☞ Injection dans les paramètres (POST/GET) ☞ Injection dans les en-têtes HTTP ☞ Cookie User-Agent Injection dans les fichiers (via HTTP) ● Injection d'information ● Contournement d'authentification Outils existant ● ● Sqlmap ☞ Très fourni ☞ Permet d'exploiter un bon nombre de pages vulnérables ☞ Supporte différentes options d'attaque ☞ Must-have du pentester Havij ☞ Outil Windows Click&Exploit ☞ Développé par des gens peu fiables ☞ Disponible sous forme d'exécutable, difficile de savoir ce qu'il fait ☞ N00b ! Outils : limitations ● ● ● Pratiques ☞ Dump automatique ☞ Test des paramètres vulnérables MAIS ☞ Inutilisable dans le cas d'exploitations difficiles ☞ Injection autre part que dans des requêtes HTTP impossible ! Un framework serait plus utile … Frameworks ● ● BBQSQL ☞ Framework python ☞ Supporte plusieurs techniques d'injection ☞ PYTHON on vous dit ! Limitations ☞ Déjà plus fourni ☞ Facilite le développement d'exploit ☞ On peut faire mieux ? PySQLi ● ● ● Python SQL injection framework ☞ Python c'est bon, mangez-en ☞ Facile à améliorer/étendre ☞ Compréhensible Historique ☞ En développement depuis 3 ans ... ☞ Eprouvé en pentest Approche différente des frameworks actuels PySQLi : origine ● ● Constat ☞ Identification par l'erreur ou le comportement ☞ Contexte d'injection généralement connu Besoin ☞ Développer des exploits avancés ☞ Sqlmap suffit dans la plupart des cas Quand sqlmap ne passe pas, c'est la misèèèère Développer rapidement Framework Python PySQLi ● Principe ☞ Forge : moteur de génération de code SQL injecté ☞ Injecteur ☞ Trigger Exemple ● Exploitation d'une injection via URL Framework extensible ● Injection possible dans théoriquement n'importe quoi ☞ Ligne de commande ☞ Requêtes HTTP ☞ Protocoles réseau spéciaux ☞ (D)TC Exemples d'utilisation ● Demos ☞ Formulaire avec anti-CSRF ☞ Injection dans une ligne de commande ☞ Pas supporté par sqlmap … idem ! Injection dans un protocole d'authentification maison Téléchargement ● Disponible sous github ☞ https://github.com/sysdream/pysqli/ Questions ?id=' OR '1'='1