web-dev-qa-db-fra.com

Le script Timthumb étant compromis - Quelles précautions à prendre?

Lisez un article sur le script Timthumb compromis compromettant la vulnérabilité de WP installations. Source ici

Jetons un coup d'œil à timthumb.php. Voici la fonction suivante, que je présume être le coupable.

function checkExternal ($src) {

    $allowedSites = array(
        'flickr.com',
        'picasa.com',
        'blogger.com',
        'wordpress.com',
        'img.youtube.com',
    );

Étant donné que mon site est hautement personnalisé (par conséquent, la mise à jour de timthumb est compliquée), suffirait-il de supprimer ces domaines externes car toutes les images sont hébergées sur mon serveur et ne nécessitent donc aucun domaine tiers?

2
Sledge81

Meilleure façon: Supprimez le script timthumb de votre serveur et changez votre thème pour ne pas en avoir besoin au départ.

Timthumb n'est pas vraiment nécessaire avec les nouvelles versions de WordPress. La fonction add_image_size () peut être utilisée pour créer des tailles d’image personnalisées dans le thème. Et la plupart des thèmes plus anciens que je voyais encore l’utiliser l’utilisaient pour créer un type de fonctionnalité "miniature", qui est maintenant intégré à WordPress lui-même.

La seule chose que TimThumb fait vraiment que WordPress rend difficile est le rognage personnalisé, dans lequel vous pouvez rogner les images d’un côté ou de l’autre au lieu de faire une méthode de rognage moyenne. Et la plupart des thèmes n'utilisent pas cette fonctionnalité.

6
Otto

Je suis d’accord avec Otto: c’est bien mieux d'utiliser the_post_thumbnail et add_image_size, mais timthumb recadre aussi les images à la volée, de sorte que sur un site plus ancien contenant des milliers d’images, vous devrez utiliser Régénérez les miniatures pour recadrer ce qui serait une tâche ardue, en particulier pour l’hébergement partagé.

En plus de supprimer le tableau de sites autorisés, assurez-vous que votre serveur/hébergement est configuré pour ne pas nécessiter d'autorisations 777 sur le dossier de cache qui, j'en suis sûr, fonctionne avec suPHP mais fonctionne avec DSO envoyé à personne: personne ou www-data: www- data: www- Les données.

1
Chris_O

La source d'origine de cette opération (lien masqué) ne fournissait aucun vecteur d'attaque réel. Cela signifie que le code que vous avez montré ci-dessus a été modifié pour récupérer un fichier .php distant à l'aide de $allowedSites.

La façon dont cela a été accompli est toujours un mystère, car des articles comme ceux-ci ne passent pas par le conseil approprié, ne suscitent aucune réaction de leurs pairs et ne semblent pas savoir comment quelqu'un a écrit une URL malveillante (comme fetchbadphpfile.com) dans timthumb.php (ou tout autre fichier d'ailleurs).

Bien que ceci soit un mauvais code de la part de timthumb pour ne pas valider les URL (ou autre), cela nécessite toujours un piratage, soit par un autre problème de sécurité, soit très probablement par un script pré-injecté malveillant.

ps. Notons que timthumb.php avait en réalité un vecteur d'attaque XSS documenté il y a quelques versions qui a été soumis à plusieurs alertes de sécurité et qui n'a pratiquement pas attiré l'attention ...

0
Wyck

WordThumb est un fork et une réécriture de timthumb.php après la vulnérabilité timthumb. Il est entièrement compatible avec timthumb avec les versions antérieures et offre une sécurité accrue et des performances égales, voire supérieures.

http://code.google.com/p/wordthumb/

0
Refiner