standard

Vulnérabilités dans Portable phpMyAdmin
Votre base de données, version publique

banner-ppma
Portable phpMyAdmin

Portable phpMyAdmin allows a user to access the phpMyAdmin section straight from the Dashboard.

Portable phpMyAdmin allows a user to access the phpMyAdmin section straight from the Dashboard.

Upload the Portable phpMyAdmin plugin to your blog, activate it, then go to Portable PMA to use it.

1.4.1

  • Removed zend.ze1_compatibility_mode directive check
  • Removed magic_quotes_runtime directive check
  • Removed output header from index.php
  • Removed error reporting

1.4

  • SECURITY: Added unique hash option (no access from outside anymore)
  • SECURITY: Added administrator check (no subscriber access)
  • SECURITY: Added blank index.php file to every folder inside phpMyAdmin

1.3.2.2

  • SECURITY: Added referrer check for direct IFRAME access
  • SECURITY: Added Javascript check for direct IFRAME access
  • SECURITY: Added md5 encryption for caller parameter

1.3.2.1

  • GENERAL: Added general warning for plugin usage
  • GENERAL: Moved database details below the main phpMyAdmin frame for better visibility on smaller screens

1.3.2

  • FIX: Fixed security vulnerability
  • FIX: Fixed direct browsing to plugin subdirectories
  • FIX: Fixed vulnerability described by James Dunn on wpmu.org

1.3.1

  • FIX: Fixed security vulnerability.

1.3-alpha

  • FIX: Incremental alpha patch

1.2.9.5

  • FIX: Fixes, fixes, fixes (too many to list here)

1.2.9.4c

  • FIX: Fixed connection error

1.2.9.4b

  • UPDATE: Updated phpMyAdmin to version 2.11.11.3 (2011-02-11)
  • UPDATE: Resolved ereg() deprecation
  • UPDATE: Resolved eregi() deprecation
  • UPDATE: Resolved ereg_replace() deprecation
  • PERFORMANCE: Even more steps into the new UI framework
  • GENERAL: Added donation form

1.2.9.3

  • GENERAL: Removed useless MySQL info, also conflicting with other plugins
  • GENERAL: Small tweaks
  • IMPROVEMENT: Added a small help section

1.2.9.2

  • GENERAL: Changed author URL address

1.2.9.1

  • GENERAL: Changed author URL address

1.2.9

  • SECURITY: Removed some setup/upgrade files for phpMyAdmin, as they were no longer needed and posed a security threat (thanks Joost de Valk)

1.2.8

  • SECURITY: Removed database info and credentials from the plugin screen (a WordPress administrator is not necessarily a database administrator)
  • PERFORMANCE: Improved rendering speed of phpMyAdmin navigation frame
  • PERFORMANCE: More steps into the new UI framework

1.2.7

  • PERFORMANCE: Removed IE6 support
  • PERFORMANCE: More steps into the new UI framework
  • FIX: Fixed a conflict with Server Info plugin
  • FIX: Fixed 2 uninitialized variables

1.2.6

  • FIX: Fixed phpMyAdmin path for non-traditional WordPress installations or custom directories
  • FIX: Fixed database host for non-localhost MySQL installations
  • FIX: Fixed the dreaded "Headers already sent" error
  • FIX: Removed some unused code

1.2.5

  • PERFORMANCE: Removed old version of phpMyAdmin
  • PERFORMANCE: Removed old, unused functions from the wrapper function

1.2.4

  • FEATURE: Added menu icon
  • FIX: Implemented several phpMyAdmin fixes
  • FIX: Fixed lots of bugs
  • FIX: Fixed phpMyAdmin to work on certain configuration
  • FIX: Fixed a deprecated ereg_replace in phpMyAdmin

1.2.3

  • IMPROVEMENT: Removed phpinfo()

1.2.2

  • FIX: Removed several server lines to circumvent the "No input file specified" bug in IIS servers
  • FIX: Removed a redundant line to fix any output bufferring errors

1.2.1

  • IMPROVEMENT: General code cleanup
  • FIX: Fix phpMyAdmin login issue

1.2

  • FEATURE: Moved the menu from Tools section to its own top-level menu
  • FEATURE: Various UI improvements and tweaks
  • INFORMATION: Added general server information
  • INFORMATION: Added PHP information
  • INFORMATION: Added MySQL information

1.1

  • SECURITY: Removed the setup folder as it posed a high security risk
  • SECURITY: Implemented several 'security through obscurity' actions
  • SECURITY: Changed phpMyAdmin authentication mode for increased security
  • PERFORMANCE: Increased performance by removing compatibility checks
  • PERFORMANCE: Doubled blobstreaming limits

1.0.8

  • Updated deprecated code for WordPress 3.x
  • Updated version and author
  • Updated WordPress compatibility
  • Modified phpMyAdmin theme for space reusability
  • Removed 'darkblue_orange' theme

1.0.7

  • Added database size variable

1.0.6a

  • Repack (SVN error)

1.0.6

  • Updated phpMyAdmin to 3.2.4
  • Added all languages distributed with phpMyAdmin 3.2.4

1.0.5

  • Updated for WordPress 2.9

1.0.4

  • Fixed several phpMyAdmin cookie configuration bugs
  • Fixed a couple of typos
  • User interface additions
  • Extracted database information from wp-config.php

1.0.3

  • phpMyAdmin now opens in iframe (as initially intended)

1.0.2

  • Added plugin URL to repository

1.0.1

  • Fixed wrong URL being passed to plugin

1.0.0

  • First release
  • Based on phpMyAdmin 3.2.3 English

Présentation

Avec ses 78018 téléchargements, le plugin "Portable phpMyAdmin" permet d'avoir un accès rapide et simple à l'administration de votre base de données grâce à une version portative du celèbre phpMyAdmin.

Quel est le soucis ?

Si vous avez des membres sur votre site (même de simples abonnés), arrêtez de lire cet article, supprimez de suite sur tous vos sites ce plugin et reprenez la lecture, ne perdez pas de temps !

Le problème ne vient pas de phpMyAdmin mais de la façon dont le plugin donne l'accès à cette administration. Seuls les admins ont un menu qui ouvre la page incluant l'accès à PMA, mais cette inclusion n'est en fait qu'une iFrame. Ce qui signifie que, en simple membre, je peux charger l'url du plugin PMA dans mon navigateur, et ainsi avoir accès sans mot de passe à la base de données en accès complet. Ouch.

Une démonstration ?

Voici une capture de ce que voit un abonné, un simple membre inscrit avec le moins de droits possible :

Profil Abonné

Profil Abonné

Ouf, pas de danger, puisque pas de menu ? mmm ... maintenant je vais tapper ça :

http://www.example.com/wp-content/plugins/portable-phpmyadmin/wp-pma-mod/

Voici le résultat en images :

Accueil de PMA

Accueil de PMA

"Oh oh oh" comme dirait le Père Noël ! Cadeau, vous avez un accès complet, même en abonné ! Si cet abonné connait le plugin, sait que vous l'utilisez ou simplement teste la faille sur votre site, ça risque de faire très mal ... Cela lui donne la possibilité de supprimer les données, effacer des tables, modifier le contenu des articles, ajouter des pubs ou autres scripts malicieux, se créer un compte admin, bref de la belle pagaille !

Convaincu ?

Vous n'aviez pas encore supprimé le plugin ? Allez-y, j'espère que cette démo vous a convaincu. L'auteur est alerté mais ne semble pas bouger, il était donc de mon devoir de vous en informer. D'une manière générale, éviter ce genre de plugin, préférez les applications web externes à WordPress.

Un patch ?

Un patch est sorti mais, si vraiment vous aviez besoin d'administrer votre base de données de cette façon, je vous invite à vous tourner vers des solutions hors WordPress comme votre hébergeur, ou un autre phpMyAdmin externe dans lequel vous ajouterez un .htpasswd et devrez ensuite vous authentifier.

Lire la suite

Vous aimez ? Partagez !

À propos de Julio Potier

Consultant en Sécurité & Expert WordPress, je développe et sécurise du contenu web tous les jours. La création de plugins WordPress fait partie de mon quotidien. Mon livre de chevet ? Le codex WordPress bien sur !

Commentaires

  1. Incroyable
    Le développeur du plugin n’est pas très calé en sécurité.
    Faire ce genre d’erreur est dingue.

  2. 2
    richnou a écrit:

    Pour sécuriser : un htaccess avec password dans le dossier concerné ?
    Mais tu le dis: autant utiliser une version non plugin…

  3. 3
    frances cortez a écrit:

    Où mysql_real_escape_string() de PHP échappe la variable et prévient contre le SQLInjection. Soyez donc vigilants, de nombreux plugins wordpress sont facilement hackés ; de plus, si vous comptez distribuer votre plugin wordpress , le code source sera accessible au grand public.

  4. Merci beaucoup pour l’info! C’est incroyable que l’auteur ne fasse rien!

  5. Franchement, je suis sur le cul, il faut être quand même je pense mal intentionné pour vouloir se connecter sur une base de données et mettre du désordre. Mais bon vaut mieux se prémunir au maximum … il ya pas mal de délinquants du web qui trainent … Merci pour les conseils …

    • AuteurJulio Potier a écrit:

      Bienvenue sur Internet ! Sache que tous les jours des milliers de sites se font pirater grâce à ce genre de faille.

Envie de dire quelque chose ?

Avant de parler, merci de lire la charte des commentaires.

*

Vous pouvez utiliser le tag [php][/php] pour ajouter quelques lignes de PHP, si c'est un pavé, merci d'utiliser service comme pastebin.com.

Vous êtes humain ?
Cliquez sur les ciseaux.