Salut,
tu n'aurais pas une question encore plus vaste ? Plus sérieusement, il y a tellement à dire mais allons s'y !
Ce que tu appelles des failles ou "exploit", c'est plutôt des erreurs / oublies de programmation à mon avis.
Pour trouver ces erreurs / oublies, il n'y a pas de méthode magique, généralement tu les trouves par hasard en utilisant l'application dans un cas un peu limite. Si tu as accès au code, c'est potentiellement plus facile car il "suffit" d’identifier certaines pratiques Java peu recommandés.
Cependant, pour identifier les problèmes il faut déjà avoir une très bonne maitrise du Java (dans le cas des plugins MC). Voici quelques exemples d'erreurs basiques :
Examinons le code suivant (c'est un code d'une application Java basique, pas d'un Plugin MC
- mais aucune importance) :
Code:
public static void main(String[] args) {
if (args[0].equalsIgnoreCase("bonjour")) {
System.out.println("Bienvenue !");
}
}
Ce code contient une erreur de programmation. Bon je pense que personne ne fait cette erreur mais c’est pour que ça reste accessible !
L'erreur, si tu ne la vois pas est une
ArrayIndexOutOfBoundsException car j'essaie de récupérer l’élément 0 du tableau
args (
args[0]) sans avoir vérifié si le tableau était vide ou non...
Une autre erreur de programmation peut être ce que l'on appelle
un effet de bord. Là c'est beaucoup plus complexe à démontrer mais pour faire simple c'est lorsqu'une fonction modifie des variables qui le lui appartiennent pas. Globalement, c'est un mauvais usage de variables globales ou statiques. Ces effets de bord sont généralement à l'origine de mauvais comportement du programme voir de plantage dans certains cas.
Pour revenir sur ta question, tu ne trouveras pas de faille te permettant d'avoir des accès à une base de données. Ces données ne sont pas dans le code du programme
*, mais dans un fichier de configuration. Donc pour y accéder, il faut accéder à la machine qui héberge le serveur, et là, c'est du Linux, plus des plugins.
* sauf si tu t’appelles Vevo et donc le mot de passe est en clair dans le code : donc il suffit de lire le code.
Les types de problèmes que je t'ai présenté mènent généralement à des erreurs, et c'est le meilleur cas. Mais il arrive aussi qu'un code ait un comportement non souhaité, sans erreur, et là c'est plus grave. Si tu n'as pas d'erreur (d’Exception), le code continue de s’exécuter et donc des comportements non souhaités peuvent avoir lieu, et c'est là le pire cas. C'est comme ça que, notamment sur des sites Internet, des personnes arrivent à faire des actions en tant qu'administrateur.
PS: D'autres erreurs qui peuvent avoir de graves conséquences sont un mauvais usage des pointeurs. Je n'en parle pas ici car cela ne concerne pas le Java mais les langages comme le C. Là les conséquences sont la destruction du programme par l'OS dans le meilleur des cas.