Aller au contenu

Classement

Contenu populaire

Affichage du contenu avec la meilleure réputation le 09/11/2020 dans toutes les zones

  1. Bonjour, Bonsoir ! Comme les trois derniers repacks que j'ai partager, je vous fait donc un pack complet avec: PlusEMU Swf PRODUCTION-201601012205-226667486 DB Compatible HabboCMS 3.3 (vous pouvez le modifier par un autre cms sans problème) Le CMS & SWF, je les ai mis ensemble dans le dossier CMS_SWF. Comme ça, vous avez juste à déplacer tous les fichiers qui s'y trouve dedans, dans votre FTP, puis configurer la base de donnée à votre CMS (include/settings.inc.php) Puis configurer les swfs dans game > gamedata > external_variables.txt. La DB compatible, c'est le fichier DB_COMPATIBLE.txt Ce que contient le pack en screenshot: Téléchargement: [hide]http://www.mediafire.com/file/wtqifx8siyf39x1/Repack_PE.rar[/hide] Scan: [hide]https://virustotal.com/fr/url/a576c916257bcc5fd2d88e160a2012af1c00a3255f808392a7619896c6d83f84/analysis/1478738719/[/hide]
    2 points
  2. Bonsoir, En ce début 2019 je vous partage la dernière version du CMS de YourHabbo. Quelques screens Téléchargement : [hide]git clone https://github.com/Arwantys/YourHabbo.git Lien Github : https://github.com/Arwantys/YourHabbo[/hide] Je vous invite à me follow ainsi cas utiliser la section "Issues" en cas de problème. À bientôt.
    1 point
  3. SloptEMU Version Habbet by Genaro Carrillo Oyé Oyé, comment allez-vous jeunes gens d'inshare ? En cette fin 2019 j'ai remarqué que les petits joueurs dans les communautés habbo sont toujours présents, vous connaissez peut-être le service de vente de "MonHabbo" qui est produit par un Florian. Il propose des ressources qui l'a soi-disant payé et sois disant sont privés c'est ce qu'il fait croire à tous ses clients, et donc il en profite pour vendre les ressources à des prix absurdes ou soi-disant il à beaucoup bosser (c'est vrai que changer des images de SWF/Traduire les commandes et demander des scripts c'est beaucoup se travaille. Aujourd'hui je vous partage donc les ressources de SloptEmu car elles sont totalement gratuites sur des forums espagnols. Screen des ressources: Pour d'autre screens: https://imgur.com/a/IRVxbPg Lien de Téléchargement: [hide] EMU = https://www.mediafire.com/file/x0zbma6zq8owk0x/Slopt_Emulador_2019.rar/file DB = https://www.mediafire.com/file/r88jlffnvjsbmtv/habbetco_hotel_(10).sql/file CMS = http://www.mediafire.com/file/ogkqwjg2uqfa3ov/Habbet_06-10-19.rar/file SWF = https://www.mediafire.com/file/9nre03hjbo08s5i/swf.rar/file [/hide] Credits - Brain Cms : Base Primaria de la CMS. - Sulake Corp : CSS, HTML, IMAGENES y JS de Habbo - Genaro : (Yo) Programar nuevos sistemas y nuevo diseño - Letex : Programador de Slopt https://www.forozone.es/herramientas-utilidades/slopt-cms-v2-(sistema-de-territorios-tienda-reportes)-(plus-emu-renames)/ Screen de Florian qui vend son émulateur exclusif car il à mis sont catalogue en Français rajouté des musiques: http://prntscr.com/qh7cps https://gyazo.com/6d6bd302e624faa41fc145b40f1b7a22 http://prntscr.com/qh7cn7 SWF FR : http://www.mediafire.com/file/g739rmh8ngdy19p/sloptfr.zip/file Great at @ Tropico Nistype
    1 point
  4. Yop, Comme à chaque fois que je n'ai rien à faire, je prends donc des ressources pour en faire un pack. (J'ai déjà partager NovaPack ainsi qu'un pack r63a). Bref, aujourd'hui je décide donc de partager un pack r63c, composé de: AzureEMU 190 AzureSWF 190 AdowCMS Compatible bien sur, je les avais déjà tester auparavant. Bref, je profite aussi de faire ça le soir, car avec ma connexion, l'upload sur MediaFire, n'est pas TopTop ^^ Non j'dec, depuis j'ai eu la fibre Je vous ai fait un petit fichier texte pour savoir comment config les swfs & l'émulateur >> Téléchargement: [hide]http://www.mediafire.com/download/6ksc4on9oo73b5s/Pack+-+r63c.rar[/hide] >> Scan: [hide]https://www.virustotal.com/fr/url/fb9932311597344074f8aae4fbbc53dca07e307774ec91a084a5a4e521d75a8a/analysis/1474676905/[/hide] >> Screen des dossiers: https://inshare.fr/img_h/1474675497.png Pas de quoi,
    1 point
  5. Eh bien, ces temps-ci tout le monde partage leurs ressources librement. Surtout les Espagnols donc je vous partage encore un pack tout droit de nos Espagnols! Images: Lien de téléchargement: [hide] http://www.mediafire.com/file/jo8hxfeo54uiqui/NutellaProject.zip/file [/hide]
    1 point
  6. Salut à tous. 1. Introduction Étant développeur web, on peut rencontrer plusieurs types de failles dans un CMS, qu'il sois vieux ou récent. Une faille en particulier a attiré mon attention dans le monde du développement web. En sachant que PHP regroupe les moins bons comme de très bons développeurs, il faut savoir que souvent, les amateurs oublient de gérer une faille qui reste extrêmement dangereuse dans certains cas. C'est pas pour autant que je vais aborder sur ce topic, plusieurs failles récurrentes dans un projet web amateur. N'oubliez pas le petit +1 si ça vous a plu. :3 2. Quelque failles A) Restrictions + Redirections Problématique: Malgré une restriction du rang sur certaines pages, comment être sûr que la redirection fonctionne et que la personne n'a pas accès à la page en question? Réponse: Vous pensez peut-être qu'en essayant de vous dérank et si vous essayez d'accéder à la page, que vous subissez une redirection, vous êtes protégés? [HIDE] Réponse réelle (Ce n'est pas la résolution du problème): Imaginons une fonction publique provenant d'une classe type: <?php public function restrict() { if(!$user->Logged()) { // Savoir si le joueur n'est pas connecté header('Location: index.php'); } } ?> Si vous n'utilisez pas de classes, c'est facilement adaptable. Le principe est que lorsqu'on veut restreindre une page par exemple à un utilisateur non connecté, on a tendance à utiliser un header();. Maintenant si on se déconnecte ce la page en question et que l'on veut accéder à la page, on est logiquement redirigé. Mais que se passe-t-il si on bypass le header(); ? Il existe par exemple sur Chrome une extension, permettant de bypass les headers: Le nom est "ModHeader". Voici un screen: Si jamais je coche le bouton à gauche de "Location" que j'ai au préalable ajouté dans "Response Headers", je vais pouvoir éviter les redirections des sites webs. Attention, ça ne bloque que les header('Location:'); Du coup j'imagine que vous avez une idée de la suite, on va activer cette application qui va nous permettre de vérifier si jamais on est pas redirigé, qu'est-ce qu'il se passe. Si jamais on essaie, on va tomber sur la page, sans redirection, et c'est plutôt problématique si jamais ça arrive dans des pages qui sont plutôt dite à risque comme dans l'administration par exemple. Ce qu'on va faire donc, c'est modifier notre fonction qui retourne qu'un header('Location'); par une fonction un peu plus poussée. <?php public function safeRedirect($url, $exit = true) { if (!headers_sent()){ header('HTTP/1.1 301 Moved Permanently'); header('Location: ' . $link); header("Connection: close"); } print "<html>"; print "<head><title>Redirection...</title>"; print "<meta http-equiv='Refresh' content='0;url='{$link}' />"; print "</head>"; print "<body onload='location.replace('{$link}')'>"; print "Vous rencontrez peut-être un problème.<br />"; print "<a href='{$link}'>Se faire rediriger</a><br />"; print "Si ceci est une erreur, merci de cliquer sur le lien.<br />"; print "</body>"; print "</html>"; if ($exit) exit; } ?> Le plus important dans ce code, c'est le "exit;" qui permet de bloquer les informations du site, et ne donne aucune suite. Ça reviendrait à faire un header('Location'); avec un exit; à la fin, mais cette fonction donne des infos supplémentaires à la personne qui est bloquée par la redirection. [/HIDE] B) Faille CSRF Problématique: Imaginons que nous sommes connecté à notre site. Et qu'une personne hasardeuse nous demande d'aller checker son site par exemple. Ça nous redirige vers un site plus que douteux, on clique quand même sur ce lien, et 15 minutes après, lorsqu'on souhaite accéder à notre site, il se trouve qu'une personne inconnue est gradée dans notre site, et y a fait n'importe-quoi. Réponse: Nous souhaitons voir comment est-ce que cela a pu se produire. Pour cela, en général, dans un site web on a un système de logs qui définit les faits qu'un staff a fait par exemple. Ce qui est utile pour voir si un problème a eu lieu, ou pour modérer les faits d'un staff. Si jamais ces logs n'existent pas, on ne peut pas vérifier à 100% que c'est dû à ça. Mais la plupart des sites webs amateurs n'ont pas de protection contre la faille CSRF. Donc, je poursuis, en voyant les logs, on peut voir que c'est "vous" qui avez gradé l'utilisateur en question. Si on en revient aux faits, vous avez cliqué sur un lien, qui a gradé un utilisateur. Et ce lien peut poser problème dans un autre contexte. On va voir un autre cas pratique: Dans un forum, imaginons un utilisateur qui fait un post. Ce post a comme contenu une image qui n'est pas visible, vous vous dites sûrement que cette image est morte, mais vous regardez quand même le post. Plus tard, vous vous apercevez que certains de vos topics ont été supprimés. Le problème étant l'image, qui pointe vers une page .php, et cette page a le même principe que l'autre contexte, en revanche touche celui qui a vu l'image, sachant que lorsqu'une image est appelée, elle fait appel à la page PHP, et donc elle est interprétée. Vous allez me dire, supprimer la possibilité de mettre une page .php dans les images est une possibilité, mais ça ne change pas le problème de lorsqu'on clique sur un lien douteux ou que l'on reçoit une image douteuse. Enfin bref, nous allons voir par la suite comment régler ce problème. [HIDE] Je ne vais pas évoquer la façon dont on fait pour exploiter ces failles, mais plutôt comment régler ces failles. Le but de la faille étant de créer un formulaire distant. Ce formulaire distant étant lié au formulaire du site. Pour régler ce problème, on va étudier déjà la façon dont sont fait les systèmes de connexions à un espace membre basique en temps normal. Pour ma part, ça sera sous forme de classe et de fonction, mais ça reste presque le même principe, suffit d'imaginer les restrictions qui ne sont pas stockés dans une classe mais de façon procédurale. #region [Login] /** * @param string $username * @param string $password * @return array|bool */ public function Login($username, $password) { if(!$this->existValue('auth')) { if(!empty($username) && !empty($password)) { $username = htmlspecialchars($username); $searchUser = $this->db->query('SELECT * FROM alive_users WHERE username = ? OR mail = ?', [$username, $username]); // La fonction query est réecrite dans ma classe, elle correspond à un prepare() et execute() en PDO. if($searchUser->rowCount() > 0) { $user = $searchUser->fetch(); if(password_verify(htmlspecialchars($password), $user->password)) { // On utilise du BCrypt dans ce cas $this->setValue('auth', $user); // Équivalent: $_SESSION['auth'] = $user; $e = ['error' => false, 'message' => '5f6f1764f7c2c961654cfbdb8aed67fe735a96bc']; return $e; } else { $e = ['error' => true, 'message' => 'Mot de passe incorrect.']; return $e; } } else { $e = ['error' => true, 'message' => 'Compte introuvable.']; return $e; } } else { $e = ['error' => true, 'message' => 'Les champs ne sont pas remplit.']; return $e; } } else { $e = ['error' => true, 'message' => 'Erreur interne...']; return $e; } } #endregion Pour régler ce problème il va y avoir plusieurs étapes. On va d'abord rajouter une ligne lorsque la connexion est faite, là où on y rajoute le $_SESSION['auth'] = $user; La ligne en question est: $this->setValue('token', sha1(uniqid(rand(), TRUE))); // Équivalent: $_SESSION['token'] = sha1(uniqid(rand(), TRUE))); Ce code va permettre l'intégration d'un token CSRF. Ce token va servir aux vérifications lors des formulaires lorsqu'on est connecté. Chaque fois qu'on se connecte, on possède donc un token unique. Le but étant de pouvoir vérifier si l'utilisateur qui utilise le formulaire est bien la bonne personne. Une personne quelconque n'aura pas accès à votre token, et donc si le formulaire distant est crée, il ne pourra pas y mettre votre token. Vous allez comprendre par la suite. Maintenant, imaginons vous avez un formulaire une fois connecté pour disons... Ajouter votre adresse mail. <form method="POST" action="#"> <label for="form_mail">Entrez votre adresse mail</label> <input id="form_mail" type="text" name="mail"> <!-- On rajoute donc un champs en plus de type "hidden" qui va contenir notre token: --> <input type="hidden" name="token" value="<?= $user->getToken(); /* Ça correspond au $_SESSION['token'] qu'on a crée au préalable à la connexion. */ ?>"> </form> Dernière étape donc, c'est lorsqu'on va donc vérifier ce formulaire, on va devoir prendre en compte le token: <?php // Une fois de plus je reste sous forme de classe: Mais ça reste simple de vérifier votre code, il y a juste 1 vérification en plus à faire: public function addMail($postMail,$postToken) { $session = new Session(); // Appel de la classe Session que j'ai crée mais vous en aurez sûrement pas besoin if(filter_var($postMail, FILTER_VALIDATE_EMAIL)) { if($postToken === $session->getValue('token')) { // Si le $_POST['token'] correspond strictement à $_SESSION['token'] // Code } else { $e = ['error' => true, 'message' => 'Erreur interne...']; return $e; // Le token CSRF est incorrect } } else { $e = ['error' => true, 'message => 'L\'adresse mail est incorrect.']; return $e; } } ?> [/HIDE] C) Faille XSS Problématique: Imaginons que du jour au lendemain, suite à des gens ayant quelque bases qui se sont inscrit sur votre site, vous ayez des alert(); en javascript qui sont présent sur certaines pages de votre site mais pas que! Il est possible aussi que quelques minutes après avoir visité quelques pages, vous pouvez voir que la configuration est plus accessible, voir même que depuis l'administration, une fois de plus, c'est vous qui avez fait tout ça. Détrompez-vous, ce n'est pas quelqu'un qui a accès à votre mot de passe. Résolution: [HIDE] Dans certains cas, si on ne restreint pas les caractères autorisés, les membres ont la possibilité d'entrer des caractères pouvant entrer en conflit avec le langage HTML / Javascript. ( Le PHP n'est pas prit en compte. ) Cela peut même toucher le SQL si la requêtes n'est pas bien faite. Comme toujours j'avance pas de propos concernant la façon dont on exploite les failles mais comment les régler. Il existe donc plusieurs moyens pour régler ces genres de problèmes. 1er moyen: Utilisation d'un moteur de template: Les moteurs de templates sont réputés pour être utilisé en M.V.C ( Model View Controller ). J'utilise souvent Twig pour ma part mais il en existe d'autres. Ces moteurs de templates proposent leur propre langages qui seront retransmit en PHP si par exemple le CMS est en PHP ou en Python si le CMS est en Python, etc. Ça permet dans un premier temps une meilleur lisibilité du code, un rendement plus efficace et permet de découper son code afin de le rendre plus explicite si quelqu'un passe derrière nous afin d'améliorer notre travail. 2ème moyen: Fonction Parse en PHP C'est une fonction assez efficace qui va servir lorsqu'on va afficher du texte qu'on peut définir de "pas sûr". Lorsqu'un utilisateur s'inscrit, il va avoir la possibilité de choisir un pseudo. Certes, on peut rajouter un preg_match afin de lui demander d'utiliser que des lettres / chiffres ( [a-zA-Z0-9-._]+ ) en revanche ça peut facilement poser problème dans d'autres cas. Pour ma part une fois de plus j'ai une class "Security" possédant plusieurs fonctions liés à la sécurité, mais là on parle uniquement de la faille XSS. Ma fonction ressemble à ça, je vais la recoder en tant que fonction simple afin de vous simplifier la tâche, mais le mieux reste vraiment de structurer son travail et donc d'utiliser des classes. Ma fonction: /** * @param $val string * @return string */ public function Show($val){ return htmlspecialchars(utf8_encode($val), ENT_QUOTES, 'UTF-8'); } La fonction simplifiée: function Show($val){ return htmlspecialchars(utf8_encode($val), ENT_QUOTES, 'UTF-8'); } Si jamais vous utilisez des classes, il vous suffira d'utiliser un echo $security->Show($username); par exemple ( sans oublier d'instancier les classes ). Pour les autres, un simple Show($username);. Par contre il faut bien pousser sur le fait que chaque valeur provenant de la base de donnée et affichée, devrait vraiment utiliser cette fonction, sauf si vous êtes sûr de vous. Par la même occasion je vous invite aussi pour le nom d'utilisateur de rajouter un preg_match, cette fonction est générale et fonctionne dans tous les cas. Dernière chose, afin d'éviter les "?" avec les accents, etc. Vérifiez bien que votre base de donnée est en UTF8 -> utf8_general_ci. [/HIDE] Merci de prendre en considération que ce post m'a prit pas mal de temps à concevoir. Si le post est suivit par plusieurs personnes, je rajouterais d'autres types de failles.
    1 point
  7. Salut tout le monde, On se retrouve pour un partage de vêtements inédits prêts à être sur vos serveurs Ce pack comprend: 12 floor swf, 13 gordon swf, 12 icônes, furnidata, figuremap, figuredata -> Catalogue, Vêtements ainsi que les SQL Ces vêtements sont paramétrés pour être dans le catalogue, si vous voulez les enlever, rien de plus simple, il faut remplacer "SELLABLE = 1" par "SELLABLE = 0" et le tour est joué Screenshot: Pack: Credits for @BR4N for this pack of clothes
    1 point
  8. Salutation commandant ! [ SUJET REFAIT ] - Je tiens également à noter que c'est créer un rétro de base. Ne vous attendez pas à vous retrouver avec un rétro comme Habbix, Wibbo etc. Tout le reste, c'est à vous de vous démarquer des autres rétros. Je ne suis en aucun cas responsable de vos soucis au cours de votre rétro, exemple si vous vous faites hack. Les cms sont souvent avec des failles, également PlusEMU il y a le SSO à fixer. Sinon, commençons le tutoriel. Je tiens aussi encore à préciser que ce tutoriel, est fait pour du localhost, donc tout sera fait sur le PC. (Si vous avez un VPS, faites comme ci que j'étais sur VPS. Rien ne change, mise à part le design. (vous avez sûrement Windows server 2008/2012. 1- Qu'est-ce qu'il faut pour avoir un rétro? Alors, avant que vous vous dites "Mais purée, il faut payer !!". NOPE Vous pouvez le faire si vous souhaitez en localhost. (ce que je vais faire dans ce tuto, car je ne vais pas acheter un vps juste pour un tutoriel. Si vous souhaitez donc payer, vous aurez donc l'avantage de pouvoir accepter les personnes sans qu'ils ont besoin de Hamachi afin d'entrée à votre serveur. (également le mettre en ligne en domaine .fr etc). Il vous faudra donc (choses à payer); VPS Nom de domaine / hébergement. (ou hébergement tout court exemple: NOMDURETRO.free-h.org) Une base de donnée (ou utilisez celle de votre hébergement mais cela utilisera la place de votre hébergement). Si vous ne savez pas comment faire, contactez votre hébergeur. Pour ce qui est des choses gratuite; CMS EMULATEUR SWF Et enfin, xampp pour les personnes en localhost. (Eviter wampp, il y a des erreurs pour certaines personnes). https://www.apachefriends.org/download.html Pour ce qui est du pack que j'utiliserai dans ce tutoriel, c'est le pack que j'ai partager pratiquement au début du forum. Sujet du Pack: https://inshare.fr/index.php?/topic/353-pack-plusemu-production-201601012205-226667486/ 2- Configuration du pare feu (si vous avez un VPS, sinon sauter cette étape!). Rendez-vous sur votre pare feu, puis paramètres avancés Puis propriétés du pare-feu windows, et ou il y a les flèches (en haut) mettez autorisé. 3- Ajouter les swf et le cms à votre FTP. Une fois connecté à votre FTP, votre dossier de racine (si ftp), est htdocs ou public_html puis mettez tout le contenu qui se trouve dans CMS_SWF. (Si vous êtes sur xampp comme moi, une fois dessus, faites "start" sur Appache puis cliquer sur Explorer enfin aller dans le dossier htdocs. N'oubliez pas de supprimer les dossiers qui se trouve dans htdocs avant de mettre les fichiers. 4- Base de donnée. Comme ci-dessus, faites "start" sur MySQL puis cliquer sur admin, ou rendez-vous sur localhost/phpmyadmin. Si localhost, créer une db exemple en nom; retro. Aller sur "importer" puis ajouter le fichier DB_COMPATIBLE et faite executer. Attendez, et c'est fait. Si en local, votre base de donnée est trop grosse, suivez ce tutoriel: https://www.numelion.com/configurer-phpmyadmin-pour-les-fichiers-volumineux.html (fonctionnel, vu que je l'ai fait). 5- Installation du cms Aller dans includes/settings.inc.php puis remplissez les champs Rendez-vous sur votreadresse/install puis remplissez les champs qui vous demande. Pour localhost en hote, mettez : localhost et identifiant root et le nom de la base de donnée, celle que vous avez créer précedemment exemple: retro. Pour le mdp, ne mettez rien. Continuer les étapes, et c'est fait ! (En émulateur, choisissez Butterfly. Pour être sur, supprimer le dossier install de votre FTP. 6- Configuration des swfs. Rendez-vous dans game/gamedata/external_variables. Faites CTRL+H et remplacer localhost par votre lien, exemple: habbo.fr Si vous êtes en local, laissez comme ceci y est, faites pareil dans external_override_variables.txt Pensez à modifier le nom de la production, remplacer par celle que nous avons qui est: PRODUCTION-201601012205-226667486 Une fois fait, enregistrer les fichiers modifier. 7- Se mettre fondateur et configurer les liens des swfs. Donc inscrivez-vous sur votre rétro, puis aller à votre base de donnée, à la table "users" sur votre pseudo, à la colonne rank mettez 10. Une fois fait, vous avez l'onglet "Administration", cliquer, et vous allez peut-être avoir l'erreur: Unknown column 'server_ver' in 'field list' Aller sur votre base de donnée, cliquer sur sql et ajouter: ALTER TABLE server_status ADD server_ver text NOT NULL; puis faite exécuter. Le problème sera donc régler. Dans votre administration, aller sur configuration, et aller vers le bas, puis GESTION DU SERVEUR remplissez les champs. Pour les flemmards, cadeau. 8- Configuration émulateur. Il vous faudra tout d'abord, Framework 4.6.2. Dispo ici: https://www.microsoft.com/fr-fr/download/details.aspx?id=53344 Ensuite, ouvrez votre émulateur, rendez-vous dans bin/debug/config.ini et configurer. Une petite aide: Régler le problème également de l'erreur du lancement. Tutoriel: https://inshare.fr/index.php?/topic/13-fixer-lerreur-de-plusemunanoemu/ 9- Fini ! Voila que tout est terminé. Vous pouvez allumer votre émulateur, et normalement tout est OK. A vous de vous ajouter des mobis, vêtements et bien d'autre ! Si vous avez des problèmes, faites en part en créant un sujet. Pour les problèmes de 76% rechercher sur le forum il y en a au moins des dizaines de résolu. Mais si vous avez bien suivis ce tutoriel, vous n'aurez aucun soucis.
    1 point
Ce classement est défini par rapport à Paris/GMT+02:00
×
×
  • Créer...