2009-10-16 12 views
1

En résumé, nous avons trouvé des fichiers faisant la promotion de médicaments sur ordonnance sur notre serveur que nous n'avons pas mis là. Le serveur Windows a des applications très anciennes et exécute MySQL 5.1.11. Au-delà des autres failles de sécurité, l'injection SQL peut-elle être utilisée pour écrire des fichiers sur le système de fichiers du serveur? Je suis certain que certaines de ces anciennes applications sont vulnérables aux attaques par injection SQL. Je ne pense pas que ce soit possible, mais je me souviens d'avoir lu quelque part que MySQL pouvait accéder à la "ligne de commande" et y écrire des fichiers bien que je ne puisse trouver une source pour cette information. Là encore, mon esprit pourrait me jouer des tours.Est-il possbile d'écrire des fichiers avec MySQL via injection SQL?

Si cela est possible, existe-t-il un paramètre qui peut le désactiver?

Aussi, je ne cherche pas la réponse qui dit se débarrasser de la vulnérabilité d'injection SQL. Alors que cela doit évidemment être fait; Je suis à la recherche d'une solution rapide à court terme qui empêchera les fichiers voyous d'apparaître par magie à nouveau pendant que les vulnérabilités d'injection SQL sont en cours de correction. Réparer toutes les anciennes applications va prendre beaucoup de temps.

Merci.

Répondre

4

C'est possible, surtout avec une configuration convenablement négligente.

Par exemple, il est SELECT ... INTO OUTFILE 'file_name'

Mais il est aussi plus susceptible d'être un problème de sécurité différent. J'envisage sérieusement de mettre le logiciel hors ligne rapidement, surtout si la base de données contient des informations confidentielles ou privées

+0

Qui qualifie avec défi. Merci pour l'info. – Eddie

1

comme le montre Colin Pickard, oui.

mais même si vous ne pouvez pas mettre à jour votre application, je doute qu'elle ait besoin des droits qu'elle utilise actuellement. vous devez vérifier l'utilisateur avec lequel il se connecte à mysql avec et descendre ces autorisations au minimum. spécifiquement dans ce cas, vous devez supprimer le privilège FILE si votre application ne lit/n'écrit pas les fichiers stockés sur le serveur mysql.

+0

Ce privilège FILE est-il disponible dans l'administrateur MySQL? Ou dois-je aller à la console pour le révoquer? – Eddie

+1

vous pouvez le faire à partir de l'administrateur MySQL, mais vous devez d'abord aller dans le menu Outils et choisir les options, et activer "Afficher les privilèges globaux" et "Afficher les privilèges d'objet de schéma". – longneck

+0

Merci. On dirait que le privilège FILE n'a pas été accordé à l'utilisateur. Je suppose que cela signifie que l'utilisateur n'a pas pu exécuter une commande select avec "INTO OUTFILE". – Eddie

0

La définition des autorisations du répertoire de l'application en lecture seule pour le compte Web peut fonctionner. Cela suppose que vous ne créez pas déjà des fichiers comme des fichiers journaux et autres.