Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
HLF_TxTime_spoofing — PoC couvrant le problème de la manipulation de l'heure des transactions (CVE-2024-45244) dans la blockchain Hyperledger Fabric. | Kitploit
Outils/GitHubGitHub/shanker-sec/hlf_txtime_spoofing
Analyse des VulnérabilitésExploitationCryptographieApprentissage et Éducation
GitHubshanker-sec/hlf_txtime_spoofing

HLF_TxTime_spoofing

PoC couvrant le problème de la manipulation de l'heure des transactions (CVE-2024-45244) dans la blockchain Hyperledger Fabric.

Voir le dépôt
214il y a 2 ansPas encore vérifié
Site web

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

HLF_TxTime_spoofing

HLF_TxTime_spoofing - une preuve de concept (PoC) couvrant le problème de la manipulation du temps de transaction (en utilisant GetTxTimestamp() ou GetHistoryForKey() ) dans la blockchain Hyperledger Fabric. Testé sur les versions 2.5.5 et 3.0.0-beta

Le projet se compose de plusieurs parties :

  1. time_insecure - variante de chaincode vulnérable utilisant GetTxTimestamp() pour calculer les intérêts d'un dépôt
  2. time_secure_ntp - un chaincode qui utilise l'acquisition du temps depuis un serveur NTP (Network Time Protocol) pour se protéger contre l'usurpation du temps par un attaquant lors du calcul des intérêts d'un dépôt.
  3. time_secure_nts - un chaincode qui utilise l'acquisition du temps depuis un serveur NTS (Network Time Security) pour se protéger contre l'usurpation du temps par un attaquant lors du calcul des intérêts d'un dépôt.
  4. time_secure_localtime - chaincode utilisant l'heure du système d'exploitation où le contrat intelligent est exécuté pour se protéger contre l'usurpation du temps par un attaquant lors du calcul des intérêts du dépôt Dans tous les cas (c'est-à-dire les chaincodes), le dépôt est rémunéré à 20 % par an.

Fonctions supplémentaires pour comprendre le fonctionnement de la logique métier :

  • CalcDividents() - retourne le dividende accumulé pour un nombre de jours donné et le montant du dépôt initial
  • subtractTimestamp() - retourne la différence entre l'heure actuelle et l'heure du dépôt initial

Workflow de time_insecure

Appelez Stake_insecure() pour ajouter un dépôt avec le montant du dépôt initial. Appelez CheckDividents_insecure() pour vous assurer que le montant du dépôt n'a pas changé. Modifiez l'heure locale sur le client et appelez à nouveau CheckDividents_insecure().

Attaque financière : avancer l'heure d'un an vous a permis d'obtenir un intérêt annuel de 20 %.

Attaque financière réussie


De la même manière, nous nous assurons que le temps de transaction peut être manipulé dans GetHistoryForKey().

Workflow de time_secure_ntp

Dans cette variante du chaincode, nous vérifions le temps de transaction par rapport au temps reçu du serveur NTP (Network Time Protocol) (en utilisant le paquet client ntp). Chaque chaincode possède sa propre adresse de serveur NTP (c'est-à-dire des paquets de chaincode différents) pour la distribution. En cas d'écart de temps, une erreur s'affichera : "wrong time". Notez que les données du trafic NTP peuvent être usurpées (les données sont transmises en clair).


Attaque financière infructueuse

Workflow de time_secure_nts

Dans cette variante du chaincode, nous vérifions le temps de transaction par rapport au temps reçu du serveur NTS (Network Time Security) (en utilisant le paquet client nts). Chaque chaincode possède sa propre adresse de serveur NTS (c'est-à-dire des paquets de chaincode différents) pour la distribution. En cas d'écart de temps, une erreur s'affichera : "wrong time".


Attaque financière infructueuse

Workflow de time_secure_localtime

Dans cette variante du chaincode, nous vérifions le temps de transaction par rapport à l'heure locale (c'est-à-dire l'heure du nœud pair). En cas d'écart de temps, une erreur s'affichera : "wrong time". Notez qu'une heure correcte est requise sur tous les nœuds pairs.


Attaque financière infructueuse

Oracle de temps

hlf-time-oracle est un chaincode pour la blockchain Hyperledger Fabric qui fournit l'heure exacte aux autres chaincodes. hlf-time-oracle est basé sur le paquet ntp et le paquet nts. Il résout ainsi le problème de sécurité associé à une éventuelle manipulation du temps de transaction par le client de la blockchain. Le chaincode fournit les fonctions GetTimeNtp() et GetTimeNts(). L'appel de ces fonctions déclenche un appel aux serveurs NTP (Network Time Protocol) et NTS (Network Time Security). Le temps reçu de l'un de ces serveurs peut être utilisé pour vérifier l'exactitude du temps de transaction défini côté client. Les développeurs de chaincodes pour la blockchain peuvent utiliser hlf-time-oracle au lieu d'écrire leur propre code pour interagir avec les serveurs NTP et NTS. hlf-time-oracle n'enregistre aucune donnée dans la blockchain pendant son fonctionnement.

Télécharger l’outil