Mod Plugin Comment trouver une Faille !?

MomoLeFr69

Architecte en herbe
8 Août 2018
83
3
56
18
Je suis, comment dire... un 'novice' en programmation et pour m'améliorer vous me direz de programmer tout simplement xD, donc j'ai décidé de faire quelque chose qui me plairait, et j'ai réfléchi, j'ai cherché mais sans trouver, COMMENT trouve-t-on des failles sur des plugins ou sur des mods des exploit des probleme qui nous permettrait d'acceder a la bdd par exemple, ceci n'est pas pour but de nuir un serveur mais d'aider les developpeur de plugins et mods, et de m'amuser ;) merci d'avance
 
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.
 
Salut,

Je vais juste rajouter un petit truc à ce qu'a dit @DiscowZombie sur les bases de données et leurs failles.
Les failles les plus courantes des bdd sont les injections sql, le principe est simple au lieu de rentrer l'information que l'on te demande tu entre une requête sql afin de manipuler la base de données à l'insu de l'administrateur. Cependant cela deviens de plus en plus compliqué d'arriver à en trouver car c'est quelque chose de très facile à régler et qu'un bon développeur n'aura même pas besoin de se préoccupé de ce problème.


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.
Lui parle pas de pointeur si il commence dans la programmation il va vouloir se tirer une balle avec le C :fou:

Cordialement
 
  • J'aime
Reactions: DiscowZombie
merci d'avoir pris le temps de repondre mais une autre question, il esxiste surement des failles ou exploit sur certain plugin ou mod (nottamment bibliocraft) ou autre plugins comme crate ou autre qui permettent d avoir acces a certaine commande inaccessible entant que joueur, est ce un probleme de permissions de la part du configurateru ou le plugin lui mm (ou mod) peuvent avoir ce genre de 'probleme'
 
Salut,

généralement les Plugins et Mods Minecraft sont assez robustes. Plus ils sont populaires, moins ça sera évidment de trouver un problème critique. Et, dans le pire des cas, ça fera simplement planter le Plugin/Mod mais sans te permettre de faire n'importe quoi. Sur ce point de fiabilité, on a beaucoup moins à s'inquiéter que des applications Web par exemple.

Pour revenir sur ta question de problème de permission, c'est assez improbable. Les développeurs ne gèrent normalement pas les permissions des Plugins sur Bukkit et ses Forks, le serveur s'en charge et bloque la commande s'il n'a pas la permission. Au vu du nombre de Plugins utilisant les commandes Bukkit, je doute qu'il y ait un problème te permettant d'ignorer complètement cela.
Par contre c'est plus probable qu'un configurateur ait mis de mauvaise permission même si, en théorie, les plugins sont censés être assez intelligent là-dessus pour empêcher de faire nimporte quoi.

Il faut garder en tête que le facteur humain est souvent beaucoup plus faillible que le programme. C'est l'exemple des "mails de fishing" notamment. À défaut de pouvoir voler tes identifiants à ta vraie banque, on t'envoie un mail (faux) te les demandant sous un prétexte bidon. Et le pire c'est que ça fonctionne...
 
  • J'aime
Reactions: Alex Fatta