Brian Turner
PAWN/PHP/SQL/MAP/SQUIRIEL
Hors ligne
GTAOnline Big Member

Messages: 431
|
 |
« le: 29 Octobre 2011 à 00:00:37 » |
|
PRESENTATIONBonjour/Bonsoir, Je vous présente mon dernier petit script qui permet de bannir des joueurs(cheater de préférence) sur tous les serveurs utilisant ce script. Il est vraiment simple d'utilisation dans sa version de base(actuel), il y a 2 commandes, /blban et /blunban. PS: Pour les personnes se faisant bannir via la commande /blban et qui essaye de se debannir en téléchargent le script et le mettre en local puis faire la commande pour se deban, cela ne marchera pas, seul le serveur qui as banni la personne peut le deban! PS2: J'aimerai bien que ce script soit utiliser sur plein de serveur, cela limitera les cheaters sur samp(et oui, si ils sont banni, ils ne viennent plus(sauf changement ip + nom, mais bon, il y aura quand même moins de cheater)) EXEMPLE: Je vais sur le serveur A, il me banni avec /blban. Maintenant je vais sur le serveur B(qui utilise mon script), je serai banni aussi, meme si c'est la 1ere fois que je vais sur le serveur B(mais pourquoi je suis banni de ce serveur alors? Tout simplement parce que le serveur A m'a banni, et que comme c'est une black list collective, sa fera pareil avec un serveur C,D,E...). Mais moi, je suis pas bete, je me fais un serveur en local, j'installe le script, je me connecte(on pourra ce connecter sous un autre nom tout simplement(au lieu de Brian_Turner, je met Brian) en local car lors de la connexion en local on est sous la forme 127.0.0.1 et non pas l'IP internet). Donc je me connecte en RCON ADMIN, je fais /blunban, mais malheuresement, sa ne marchera pas pour moi... Et oui, seul le serveur A qui ma banni pourra me deban  . TELECHARGEMENTVERSION 1.1 File name: banlist.pwn File size: 19.72 KB PastebinVERSION 1 : File name: banlist.pwn File size: 19.64 KB PastebinLOGSVersion 1.1Correction de failles de sécurité Version 1Creation du script INSTALLATION1- Faire un compte sur http://cmva.mtxserv.fr/ (en construction mais fonctionnel, votre mot de passe est crypter en MD5) 2- Mettre votre Login/Pass crées sur le site au ligne #define LOGIN et #define PASS 3- Compiler le script. 4- Ajouter a la ligne filterscripts: "banlist"(sans les guillemets) puis enregistrer votre server.cfg 5- Lancer le serveur, le laisser faire(fin du chargement a: BANLIST: KEY FIND: ......... ) 6- C'est tout! ERREURSCodes erreurs: (a venir)
 BanList de Brian Turner est mis à disposition selon les termes de la licence Creative Commons Paternité - Pas d'Utilisation Commerciale - Partage à l'Identique 3.0 non transcrit..
|
|
|
|
« Dernière édition: 30 Octobre 2011 à 16:30:53 par Brian Turner »
|
Journalisée
|
Momoto33127__________________________________________ [TRADUCTION][FS]Celular call 1.5 : Voir le poste[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste
|
|
|
Ssk
Développeur d'Open SA-MP
Hors ligne
Sous-admin
GTAOnline Legend

Open-SA-MP - Unlimited Experience
Messages: 3727
 
|
 |
« Répondre #1 le: 29 Octobre 2011 à 13:07:59 » |
|
Sympa comme idée  Mais le seul problème est si par exemple une dizaine de serveurs l'utilise, j'aime pas une personne alors je la ban et hop, cette personne est banni de 10 serveurs pour rien :/ Ce qu'il faudrait faire c'est de bannir une personne si elle a été ban d'au moins 3 serveur différent 
|
|
|
|
|
Journalisée
|
|
|
|
Brian Turner
PAWN/PHP/SQL/MAP/SQUIRIEL
Hors ligne
GTAOnline Big Member

Messages: 431
|
 |
« Répondre #2 le: 29 Octobre 2011 à 13:57:58 » |
|
Oui c'est sur, il faut quand même un minimum de maturité. Je réfléchirai a ton idée des 3 bans  EDIT: Il y a un probleme dont moi meme je ne sais pas se qu'il se passe... En local chez moi sa marche, sur le serveur d'un pote aussi, par contre sur le mien(héberger) non... Pourtant j'ai bien [14:11:38] BANLIST: COMMUNICATION OK [14:11:38] BANLIST: CONNECTED, SEARCH KEY... [14:11:38] BANLIST: KEY FIND: BLBTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Les commandes marchent super, par contre au dirai que le OnPlayerConnect n'est pas pris en compte ... J'ai fais:public OnPlayerConnect(playerid) { print("OnPlayerConnect 1"); IsPlayerBan(playerid); print("OnPlayerConnect 2"); return 1; } j'ai meme pas OnPlayerConnect 1 qui s'affiche dans la console, d’où ce problème peut il venir?
Je suis en train d'essayer de résoudre le problème, car si sa se passe comme sa chez moi, il se peut que sa face pareil chez d'autre personne.
Est ce que sa peut venir que mon serveur est heberger sur linux?EDIT: Problème résolut, j'ai mis mon FS en 1er sur la ligne filterscripts et sa a marcher.
|
|
|
|
« Dernière édition: 29 Octobre 2011 à 16:44:08 par Brian Turner »
|
Journalisée
|
Momoto33127__________________________________________ [TRADUCTION][FS]Celular call 1.5 : Voir le poste[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste
|
|
|
|
|
Brian Turner
PAWN/PHP/SQL/MAP/SQUIRIEL
Hors ligne
GTAOnline Big Member

Messages: 431
|
 |
« Répondre #4 le: 30 Octobre 2011 à 13:26:47 » |
|
Je suis en train d'etudier ton code, donc d'apres ce que je comprends ton code permet de bannir toutes les adresse IP en utilisant juste une clef valide. Effectivement c'est chaud, donc le mieu pour ameliorer sa c'est de crypter la clef et les ip?
EDIT: Ton _IsValidKey ne marchera pas, je detecte pas comme sa si la clef est bonne, elle est generer lors de la 1ere utilisation du script, et est enregistrer dans une table avec son propre nom d'utilisateur(seul l'utilisateur peut utiliser la clef, enfin pas encore, j'ai pas encore coder sa mais sa sera fait dans les heures qui suivent)).
|
|
|
|
« Dernière édition: 30 Octobre 2011 à 13:29:14 par Brian Turner »
|
Journalisée
|
Momoto33127__________________________________________ [TRADUCTION][FS]Celular call 1.5 : Voir le poste[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste
|
|
|
Xartrick
Hors ligne
Moderateur
GTAOnline Addict

C & Pawn Programmer
Messages: 1206
|
 |
« Répondre #5 le: 30 Octobre 2011 à 13:30:31 » |
|
Il n'existe pas de clef invalide dans mon code car je récupère à chaque fois une clef différente pour bannir une IP. Ce qu'il faut, c'est que quand tu appel le site pour bannir un joueur, tu dois demander un clef qui est associé à un nom d'utilisateur et son mot de passe. Il se trouve que tu demande seulement une clef, mais cette clef peut appartenir à a comme à b. Le mieux est dès qu'un utilisateur s'enregistre, tu associe à ce compte une clef.
D'ailleurs, dans ton code, je trouves inutile d'importer la fonction MD5 vu quelle existe nativement au niveau du serveur web (PHP, fonction md5).
|
|
|
|
|
Journalisée
|
|
|
|
Brian Turner
PAWN/PHP/SQL/MAP/SQUIRIEL
Hors ligne
GTAOnline Big Member

Messages: 431
|
 |
« Répondre #6 le: 30 Octobre 2011 à 13:35:06 » |
|
Effectivment pour le MD5 j'y est pas pensé de le faire coté serveur web. C'est ce que je vais faire pour la clef, je vais(enfin elle est deja) associer a un compte, mais n'a pas besoin du nom de compte pour etre utiliser, maintenant je vais faire le code pour verifier si c'est le bon compte qui l'utilise. Il n'existe pas de clef invalide dans mon code car je récupère à chaque fois une clef différente pour bannir une IP. Ben comment tu recupere les clefs?
|
|
|
|
« Dernière édition: 30 Octobre 2011 à 13:37:19 par Brian Turner »
|
Journalisée
|
Momoto33127__________________________________________ [TRADUCTION][FS]Celular call 1.5 : Voir le poste[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste
|
|
|
Xartrick
Hors ligne
Moderateur
GTAOnline Addict

C & Pawn Programmer
Messages: 1206
|
 |
« Répondre #7 le: 30 Octobre 2011 à 13:37:06 » |
|
URL: http://cmva.mtxserv.fr/banlist.php POST: action => "connectbl" login => "random_username" et => "key"
|
|
|
|
|
Journalisée
|
|
|
|
Brian Turner
PAWN/PHP/SQL/MAP/SQUIRIEL
Hors ligne
GTAOnline Big Member

Messages: 431
|
 |
« Répondre #8 le: 30 Octobre 2011 à 13:40:41 » |
|
Tu peux faire encore plus simple, tu crée le compte sur la page que j'ai donner dans le tuto d'install, et dans le script qui banni tout tu met ton pass et login et c'est parti. Je pense a un truc, dans mon script(pawn) il y a une faille presque incorigable, j'explique, il se connecte normaelment et il fait les meme boucle que toi: for ($i = 0; $i < 256; $i++) for ($j = 0; $j < 256; $j++) for ($k = 0; $k < 256; $k++) for ($l = 0; $l < 256; $l++) et fait un ban: format(string, sizeof(string),"action=ban&key=%s&name=%s&ip=%s",Key,Name,IP); HTTP(giveplayerid, HTTP_POST, BANLIST, string, "FonctionBanList"); Ah, peut etre pas, il a pas le nom, mais encore la il peut gerer un nom aleatoire, le script va tomber dans le piege
|
|
|
|
« Dernière édition: 30 Octobre 2011 à 13:45:10 par Brian Turner »
|
Journalisée
|
Momoto33127__________________________________________ [TRADUCTION][FS]Celular call 1.5 : Voir le poste[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste
|
|
|
Xartrick
Hors ligne
Moderateur
GTAOnline Addict

C & Pawn Programmer
Messages: 1206
|
 |
« Répondre #9 le: 30 Octobre 2011 à 13:45:59 » |
|
Dans mon cas, cela est justement plus embêtant. En une seule requête et sans interaction de l'utilisateur du code, nous avons une clef valide.
|
|
|
|
|
Journalisée
|
|
|
|
Brian Turner
PAWN/PHP/SQL/MAP/SQUIRIEL
Hors ligne
GTAOnline Big Member

Messages: 431
|
 |
« Répondre #10 le: 30 Octobre 2011 à 13:47:49 » |
|
Hum ok, je vois pas comment tu as la clef valide mais c'est pas grave ^^ et comment faire pour sa Je pense a un truc, dans mon script(pawn) il y a une faille presque incorigable, j'explique, il se connecte normaelment et il fait les meme boucle que toi: for ($i = 0; $i < 256; $i++) for ($j = 0; $j < 256; $j++) for ($k = 0; $k < 256; $k++) for ($l = 0; $l < 256; $l++) et fait un ban: format(string, sizeof(string),"action=ban&key=%s&name=%s&ip=%s",Key,Name,IP); HTTP(giveplayerid, HTTP_POST, BANLIST, string, "FonctionBanList"); Ah, peut etre pas, il a pas le nom, mais encore la il peut gerer un nom aleatoire, le script va tomber dans le piege
|
|
|
|
|
Journalisée
|
Momoto33127__________________________________________ [TRADUCTION][FS]Celular call 1.5 : Voir le poste[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste
|
|
|
Xartrick
Hors ligne
Moderateur
GTAOnline Addict

C & Pawn Programmer
Messages: 1206
|
 |
« Répondre #11 le: 30 Octobre 2011 à 13:57:38 » |
|
Tu dois bien le savoir, c'est ton code.
Sinon, je pensais à l'utilisation suivante.URL: http://cmva.mtxserv.fr/banlist.php POST: action => "ban" ip => "127.0.0.1" // IP du joueur à bannir name => "Xartrick" // Nom du joueur à bannir user => "Xartrick // Nom du compte pass => "1337" // Mot de passe du compte key => "BLBT..." // Clef du compte (aussi appelé API Key) Pour que le bannissement soit effectué, il faut que l'IP soit valide, que le compte existe, que le mot de passe soit celui associé au compte et que la clef soit celle associée au compte.
Rien de plus, rien de moins.
|
|
|
|
|
Journalisée
|
|
|
|
Brian Turner
PAWN/PHP/SQL/MAP/SQUIRIEL
Hors ligne
GTAOnline Big Member

Messages: 431
|
 |
« Répondre #12 le: 30 Octobre 2011 à 14:01:57 » |
|
Tu dis, que l'ip soit valide, mais elles sont toute valides, 1.1.1.1 est aussi valide que 255.255.255.255 non?
Sinon pour le compte associer a la clef, j'ai presque fini de le script
|
|
|
|
|
Journalisée
|
Momoto33127__________________________________________ [TRADUCTION][FS]Celular call 1.5 : Voir le poste[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste
|
|
|
Xartrick
Hors ligne
Moderateur
GTAOnline Addict

C & Pawn Programmer
Messages: 1206
|
 |
« Répondre #13 le: 30 Octobre 2011 à 14:09:26 » |
|
Essaye de bannir l'IP "xartrick", tu vois de quelle vérification de parle ? D'ailleurs, deux failles de type Cross Site Scripting sont présente au moment d'un bannissement.URL: http://cmva.mtxserv.fr/banlist.php POST: action => "ban" key => "BLBT..." name => "<script>alert(1);</script>" ip => "<script>alert(2);</script>" PLAYER WHITH IP: <script>alert(2);</script> - NAME: <script>alert(1);</script> BANNED
|
|
|
|
|
Journalisée
|
|
|
|
Brian Turner
PAWN/PHP/SQL/MAP/SQUIRIEL
Hors ligne
GTAOnline Big Member

Messages: 431
|
 |
« Répondre #14 le: 30 Octobre 2011 à 14:13:00 » |
|
Ta essayer la faille? Sa me parait bizzare qu'on puisse utiliser cette faille car quand je revoi le message c'est dans un echo("PLAYER WHITH IP: $IP - NAME: $name BANNED"); On peut lancer du javascript avec du php dans un echo? Essaye de bannir l'IP "xartrick", tu vois de quelle vérification de parle ? Pas du tout ^^ et effectivement maintenant que tu dit sa, je fais pas de test si c'est vraiment une IP ^^ EDIT: Nouvelle version 1.1. Merci Xartrick pour m'avoir aider a résoudre les failles (il doit en rester je pense)
|
|
|
|
« Dernière édition: 30 Octobre 2011 à 16:51:32 par Brian Turner »
|
Journalisée
|
Momoto33127__________________________________________ [TRADUCTION][FS]Celular call 1.5 : Voir le poste[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste
|
|
|
|