Tuto Ajouter Paysafecard sur Prometheus

  • Initiateur de la discussion Swarzox
  • Date de début
  • Initiateur de la discussion
S

Swarzox

Psychopathe
Messages
704
Score réaction
396
Points
325
Bonjour à tous, avant toute chose mon module n'est pas 100% automatique car Paysafecard ne fournit pas d'API permettant la vérification des cartes cependant il est ergonomique, rapide, professionnel et très simple d'utilisation que ça soit pour vous et vos joueurs.

Prérequis :

- 1 site web avec prometheus installé dessus avec un accès ftp à ce dernier
- Les crédits doivent être activés sur votre prometheus
- 1 serveur mysql avec accès (phpmyadmin)
- Mon pack "Prometheus Paysafecard" disponible ici : https://www.dropbox.com/s/490i8ryrz696197/Prometheus Paysafecard by Swarzox 1.0.rar?dl=0
Sachez que dans ce tutoriel je prend en compte le fait que votre prometheus est déjà installé, configuré et fonctionne normalement. Si vous ne disposez pas de prometheus vous pouvez l'acheter ici : https://scriptfodder.com/scripts/view/565/prometheus-a-gmod-donation-system

Côté joueur :

1.PNG


Le système est très simple pour le joueur, il a juste à rentrer son code et à attendre j'ai mis au point une sécurité solide anti spam/flood afin d'éviter tout abus de la part du joueur.

Côté administrateur, un panel de gestion de chaque paysafecard, accessible si on a la permission "transactions" :

2.PNG


Vous vérifierez de votre côté si la paysafecard est correcte ou non, vous pourrez ainsi la valider :

3.PNG


Ou la refuser :

5.PNG


Il y a également l'information de chaque paysafecard validée pour éviter tout abus :

4.PNG


Il y a également dans les logs chaque actions effectuées sur les paysafecard.

INSTALLATION :

1. Base de donnée

1 - Rendez-vous sur votre espace phpmyadmin sur lequel vous avez les fichiers sql de prometheus installés, si vous ne vous en souvenez plus ils sont indiqués dans le fichier "config.php" de prometheus web :

6.PNG


2- Une fois connecté, vous irez dans votre base de donnée prometheus puis dans la navbar vous cliquerez sur "Importer"

3- Puis vous glissez simplement le fichier paysafecard.sql et cliquez sur "Exécuter"

7.PNG


2. Installation du script

1 - Dans le fichier config.php qui se trouve à la racine vous devez rajouter ceci :
Code:
// Mettez sur false si vous souhaitez désactiver le module paysafecard ou sur true si vous souhaitez l'activer
$paysafecard = true;
Vous pourrez à tout moment désactiver mon module en remplacement le "true" par "false"

9.PNG


2 - Vous remplacez et ajoutez les fichiers de mon pack dans votre FTP :

Fichiers à remplacer :
/store.php
/pages/admin/navigation.php
/pages/store/credits.php

Fichiers à ajouter :

/pages/admin/paysafecard.php
/pages/store/paysafecard.php
/inc/ajax/psc.php

Voilà, n'hésitez pas à me faire vos retours, si ça marche bien ou si vous avez d'éventuelles erreurs. Je compte faire des mises à jour assez régulières si vous avez des idées pour améliorer le module n'hésitez surtout pas :)
 

Pièces jointes

  • 4.PNG
    4.PNG
    22 KB Vues: 53
  • J'aime
Réactions: Brozzor, Maxim Sawyer, Malcolm et 3 autres
Deadman69330

Deadman69330

Psychopathe
Messages
2 289
Score réaction
309
Points
290
Est-ce qu'il est compatible avec le tuto pour ajouter Starpass ?
 
  • Initiateur de la discussion
S

Swarzox

Psychopathe
Messages
704
Score réaction
396
Points
325
Deadman69330 à dit:
Est-ce qu'il est compatible avec le tuto pour ajouter Starpass ?
Je vais faire 2 - 3 modifs vite fait pour le rendre compatible avec starpass
 
  • J'aime
Réactions: cherchehackeur.com et Deadman69330
  • Initiateur de la discussion
S

Swarzox

Psychopathe
Messages
704
Score réaction
396
Points
325
Pour ceux qui veulent utiliser paysafecard et starpass : https://www.dropbox.com/s/4hvqx71ne0jmt9s/starpass et psc.rar?dl=0

les 2 fichiers à remplacer :
../store.php
../pages/store/credits.php
 
Makss

Makss

Psychopathe
Messages
830
Score réaction
990
Points
310
PHP:
$db->execute("DELETE FROM paysafecard WHERE code = {$_POST['id']} ");
 
  • Initiateur de la discussion
S

Swarzox

Psychopathe
Messages
704
Score réaction
396
Points
325
Makss à dit:
PHP:
$db->execute("DELETE FROM paysafecard WHERE code = {$_POST['id']} ");
Regarde tout le code avant tu peux envoyer cette requête que si t'as une certaine permission
 
Makss

Makss

Psychopathe
Messages
830
Score réaction
990
Points
310
Swarzox à dit:
Regarde tout le code avant tu peux envoyer cette requête que si t'as une certaine permission
Oui j'ai remarqué, mais un fondateur pas avisé pourrait donner cette permissions à quelqu'un et alors il ferait n'importe quoi avec la base de donnée
 
  • Initiateur de la discussion
S

Swarzox

Psychopathe
Messages
704
Score réaction
396
Points
325
Makss à dit:
Oui j'ai remarqué, mais un fondateur pas avisé pourrait donner cette permissions à quelqu'un et alors il ferait n'importe quoi avec la base de donnée
Swarzox à dit:
Côté administrateur, un panel de gestion de chaque paysafecard, accessible si on a la permission "transactions" :
Et si le fondateur donne la permission "transactions" à une mauvaise personne (ce qui arrive normalement jamais) il a simplement accès à cette requête qui peut juste supprimer des codes paysafecard + les logs permettent de voir si justement un administrateur a utilisé cette requête pour supprimer un code
 
Dernière édition:
Makss

Makss

Psychopathe
Messages
830
Score réaction
990
Points
310
Swarzox à dit:
Et si le fondateur donne la permission "transactions" à une mauvaise personne (ce qui arrive normalement jamais) il a simplement accès à cette requête qui peut juste supprimer des codes paysafecard - ARRETE D'EDITER TES MESSAGES QUAND J'ECRIS ;)
Normalement oui,
Mais tu exécute une requête SQL avec le paramètre $_POST['id'] dedans sans vérifier que ce dernier est un nombre, on peux donc faire une SQLi avec :
1; DROP TABLE paysafecard
 
  • Initiateur de la discussion
S

Swarzox

Psychopathe
Messages
704
Score réaction
396
Points
325
non tu peux pas essaie par toi même tu verras
 
Makss

Makss

Psychopathe
Messages
830
Score réaction
990
Points
310
J'ai pas Prometheus donc je peux pas tester complètement, par contre j'ai testé juste le {$_POST['id']}
 
  • Banni
Keeta

Keeta

Geek suprême
Messages
281
Score réaction
87
Points
150
Makss à dit:
J'ai pas Prometheus donc je peux pas tester complètement, par contre j'ai testé juste le {$_POST['id']}
Bah RIP la méchante injection cépasbo
 
  • J'aime
Réactions: Makss
  • Initiateur de la discussion
S

Swarzox

Psychopathe
Messages
704
Score réaction
396
Points
325
Makss à dit:
J'ai pas Prometheus donc je peux pas tester complètement, par contre j'ai testé juste le {$_POST['id']}
Sauf que dans mon code ça marche pas du tout comme ça c'est pas aussi simple, toi tu passes directement par le lien ce qui n'est pas possible avec le code il faudrait que l'admin s'amuse à forger une requête http à l'aide d'outils comme curl ou wget et même encore là y a d'autre vérifications + comme je te l'ai dit avant il y a un système de login et de permission avant que l'admin puisse tenter de s'auto hacker
 
Dernière édition:
Makss

Makss

Psychopathe
Messages
830
Score réaction
990
Points
310
Swarzox à dit:
Sauf que dans mon code ça marche pas du tout comme ça c'est pas aussi simple, toi tu passes directement par le lien ce qui n'est pas possible avec le code il faudrait que l'admin s'amuse à forger une requête http à l'aide d'outils comme curl ou wget et même encore là y a d'autre vérifications
PHP:
<?php
SESSION_START();
$page = 'ajax';
include('../functions.php');
if(prometheus::loggedin()) { $j = $_SESSION['uid']; if(!isset($_SESSION['already_reported_p'])){ $_SESSION['already_reported_p'] = false; } if(empty($_POST['id'])){ } if (permissions::has("transactions")){ $action = $_POST['action']; if($action == "delete"){ // === > == $db->execute("DELETE FROM paysafecard WHERE code = {$_POST['id']} "); prometheus::log('Suppression de la paysafecard : ' . $_POST['id'], $j, 1); }
Je vois aucun code pour empêcher le chargement direct
Si tu penses qu'on est obligé de passer par curl / wget pour accéder aux paramètre POST :
https://addons.mozilla.org/fr/firefox/addon/hackbartool/?src=search
Swarzox à dit:
comme je te l'ai dit avant il y a un système de login et de permission avant que l'admin puisse tenter de s'auto hacker
Normalement avoir cette permission ( dans ton code ) permet seulement de retirer les codes PaySafeCard et d'ajouter de la monnaie mais au final on peux supprimer toute la base de donnée
 
Dernière édition:
  • Initiateur de la discussion
S

Swarzox

Psychopathe
Messages
704
Score réaction
396
Points
325
Y a que un groupe de permission de base dans prometheus avec lequel on peut tout faire hein : https://prntscr.com/jgzaz7 donc en gros y a que les fondateurs qui ont les permissions

+ Essaie de faire tes requêtes pour supprimer la bdd avec prometheus en entier + mon module tu verras que tu pourras pas et même si on pouvait ça reste cocasse un fondateur qui veut supprimer sa bdd
 
  • J'aime
Réactions: cherchehackeur.com
  • Initiateur de la discussion
S

Swarzox

Psychopathe
Messages
704
Score réaction
396
Points
325
Makss à dit:
if(prometheus::loggedin()) { // besoin du cookie PHPSESSID // on peux donc faire un truc compliqué ou passer par // Firefox / Chrome / Autre
J'ai ri

Makss à dit:
if(empty($_POST['id'])){ // de toute façon id n'est pas vide vu qu'on a notre injection // j'enlève cette section inutile du coup }
Justement ça nous signale si un malin comme toi veut essayer d’accéder directement au lien pour faire des carabistouilles (même si ça mènera à rien)

Makss à dit:
Suite du code ?
 
Dernière édition:
  • J'aime
Réactions: cherchehackeur.com
Makss

Makss

Psychopathe
Messages
830
Score réaction
990
Points
310
Swarzox à dit:
En effet la variable $_SESSION ( qui est utilisé dans prometheus::loggedin() ) est initialisé en fonction du cookie client PHPSESSID

Je pense que tu n'as toujours pas compris :
On peux faire une injection SQL, ce qui touche donc TOUTE la base de donnée, en ayant JUSTE la permission transactions sur Prometheus

Swarzox à dit:
Suite du code ?
Code:
 elseif($action == "add"){ } else { die("Erreur, action non déterminée"); }
} else { die("Vous devez être connecté");
}
Bref pour le régler y'a juste à faire un if, je vois pas trop pourquoi tu veux autant d'explication sur quelque chose d'aussi évident
 
  • Banni
Keeta

Keeta

Geek suprême
Messages
281
Score réaction
87
Points
150
Makss à dit:
Bref pour le régler y'a juste à faire un if
Comme ça ?
Code:
 if($action == "delete"){ if (!is_numeric($_POST['id'])) {die();} $db->execute("DELETE FROM paysafecard WHERE code = {$_POST['id']} "); prometheus::log('Suppression de la paysafecard : ' . $_POST['id'], $j, 1); }
 
  • J'aime
Réactions: TheGmader et Makss
Makss

Makss

Psychopathe
Messages
830
Score réaction
990
Points
310
Keeta à dit:
Comme ça ?
Code:
 if($action == "delete"){ if (!is_numeric($_POST['id'])) {die();} $db->execute("DELETE FROM paysafecard WHERE code = {$_POST['id']} "); prometheus::log('Suppression de la paysafecard : ' . $_POST['id'], $j, 1); }
Chhhht il ne fallait pas lui dire !
 
cherchehackeur.com

cherchehackeur.com

Geek
Messages
7
Score réaction
8
Points
50
Makss à dit:
Chhhht il ne fallait pas lui dire !
Tu peux pas l'exploiter dans tous les cas regarde les fonctions include de prometheus un peu jean-jecroissavoircoder

Keeta à dit:
Comme ça ?
Code:
 if($action == "delete"){ if (!is_numeric($_POST['id'])) {die();} $db->execute("DELETE FROM paysafecard WHERE code = {$_POST['id']} "); prometheus::log('Suppression de la paysafecard : ' . $_POST['id'], $j, 1); }
Inutile c'est pas exploitable il veut juste chercher la petite bête pour montrer que c'est le bestcoder2018 regarde la fonction db execute de prometheus
 
  • Banni
Keeta

Keeta

Geek suprême
Messages
281
Score réaction
87
Points
150
cherchehackeur.com à dit:
Tu peux pas l'exploiter dans tous les cas regarde les fonctions include de prometheus un peu jean-jecroissavoircoder
Il ta donner un surnom c'est plus mignon ^^
 
  • J'aime
Réactions: TheGmader et Makss
Makss

Makss

Psychopathe
Messages
830
Score réaction
990
Points
310
cherchehackeur.com à dit:
Inutile c'est pas exploitable il veut juste chercher la petite bête pour montrer que c'est le bestcoder2018 regarde la fonction db execute de prometheus
Sauf que la fonction execute de Prometheus prends en argument un array des paramètres de la requête SQL, dans ce code là
PHP:
$db->execute("DELETE FROM paysafecard WHERE code = {$_POST['id']} ");
$_POST['id'] est intégré directement à la requete
 
  • Banni
Keeta

Keeta

Geek suprême
Messages
281
Score réaction
87
Points
150
Makss à dit:
Sauf que la fonction execute de Prometheus prends en argument un array des paramètres de la requête SQL, dans ce code là
PHP:
$db->execute("DELETE FROM paysafecard WHERE code = {$_POST['id']} ");
$_POST['id'] est intégré directement à la requete
Laisse tomber le seul truc qu'il sait faire c'est réagir avec sa réaction "Disagree" x) cétout
 
  • J'aime
Réactions: Makss
  • Administration
Snk

Snk

El Dictator
Membre du Staff
Messages
3 813
Score réaction
2 391
Points
790
L'intention initiale est bonne mais attention en effet à la sécurité ;-)

Quand il s'agit d'argent, il faut toujours faire très attention !
 
  • J'aime
Réactions: BCZ Gaming, Mika Deagle et Keeta
M

Membre supprimé 131193

Anonyme
lien mort...
 
ZarosOVH

ZarosOVH

Modérateur
Membre du Staff
Messages
6 527
Score réaction
5 488
Points
1 295
bitedenwarrr à dit:
Les compétences du mec aussi Kappa

Go mp le grand @Makss, contre 1 BTC il peu te faire un truc correcte :p
 
  • J'aime
Réactions: Makss
M

Membre supprimé 131193

Anonyme
ZarosOVH à dit:
Les compétences du mec aussi Kappa

Go mp le grand @Makss, contre 1 BTC il peu te faire un truc correcte :p
1 btc c'est un peu cher :p
 
ZarosOVH

ZarosOVH

Modérateur
Membre du Staff
Messages
6 527
Score réaction
5 488
Points
1 295
bitedenwarrr à dit:
1 btc c'est un peu cher :p
Négocie avec lui mais le talent n’a pas de prix voyons Kappa
 
Makss

Makss

Psychopathe
Messages
830
Score réaction
990
Points
310
bitedenwarrr à dit:
1 btc c'est un peu cher :p
Vu que t'es sympa je te fais une promo de 50%
 
M

Membre supprimé 131193

Anonyme
HumLeJusDorange

HumLeJusDorange

Geek
Messages
14
Score réaction
0
Points
80
Lien mort @Swarzox
 
B

BlacKBoss57

Geek
Messages
22
Score réaction
0
Points
85
N

Neptune2

Têtard
Messages
1
Score réaction
0
Points
5
Makss à dit:
Vu que t'es sympa je te fais une promo de 50%
Tu pourrais nous donner une solution pour fixer le patch après avoir expliqué comment l'exploité. Merci
 
ZarosOVH

ZarosOVH

Modérateur
Membre du Staff
Messages
6 527
Score réaction
5 488
Points
1 295
Neptune2 à dit:
Tu pourrais nous donner une solution pour fixer le patch après avoir expliqué comment l'exploité. Merci
Oui bien sûr ça fera 1 btc Kappa
 
  • J'aime
Réactions: Makss
HumLeJusDorange

HumLeJusDorange

Geek
Messages
14
Score réaction
0
Points
80
En faite c'est bon j'ai réussi à créer mon module.. C'est tellement simple...
 
L

Lescaro

Têtard
Messages
1
Score réaction
0
Points
5
Cant download the Modul
 
TyKoz74

TyKoz74

Geek suprême
Messages
393
Score réaction
122
Points
150
Lien mort
 
G

Gariox28

Geek suprême
Messages
590
Score réaction
95
Points
185
Lien stp ?
 
Offshorp

Offshorp

Amazonia Studio
Messages
704
Score réaction
256
Points
210
Gariox28 à dit:
La personne qui a créé le post est inactif comme tu peux le voir aux commentaires
 
J7gaming

J7gaming

Geek
Messages
17
Score réaction
0
Points
70
Le lien du pack ne fonctionne plus
 
B

BlacKBoss57

Geek
Messages
22
Score réaction
0
Points
85
up
 
ZarosOVH

ZarosOVH

Modérateur
Membre du Staff
Messages
6 527
Score réaction
5 488
Points
1 295
  • J'aime
Réactions: Lap3che
TyKoz74

TyKoz74

Geek suprême
Messages
393
Score réaction
122
Points
150
ZarosOVH à dit:
nan jure ? gg mec personne avais remarqué .... ho wait








Ca fais assez de message nan ? Kappa
Lien mort
 
ZarosOVH

ZarosOVH

Modérateur
Membre du Staff
Messages
6 527
Score réaction
5 488
Points
1 295
NoaGamingFR

NoaGamingFR

Wait :)
Messages
3 650
Score réaction
625
Points
340
Deadman69330 à dit:
Est-ce qu'il est compatible avec le tuto pour ajouter Starpass ?
Peut être que tu un new lien/l'archive pour ceux qui en ont besoin x)
 
KATTIX

KATTIX

Geek suprême
Messages
328
Score réaction
19
Points
115
NoaGamingFR à dit:
Peut être que tu un new lien/l'archive pour ceux qui en ont besoin x)
AHHHH UN NOUVEAU LIEN VITEEEEE!!!u
 
NoaGamingFR

NoaGamingFR

Wait :)
Messages
3 650
Score réaction
625
Points
340
Deadman69330

Deadman69330

Psychopathe
Messages
2 289
Score réaction
309
Points
290
NoaGamingFR à dit:
Peut être que tu un new lien/l'archive pour ceux qui en ont besoin x)
non :x ça fait 1 an quand même xD
 
NoaGamingFR

NoaGamingFR

Wait :)
Messages
3 650
Score réaction
625
Points
340
Deadman69330 à dit:
non :x ça fait 1 an quand même xD
Ont sait jamais hein mon dossier téléchargement contient 695 elements, et j'en delete souvent mais bon ^^'
 
MineProdZ

MineProdZ

Geek suprême
Messages
816
Score réaction
120
Points
160
J'en ai vraiment besoin de ce module, dommage que le lien ne fonctionne plus ...
 
Discord d'entraide
Rejoignz-nous sur Discord