Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
HLF_TxTime_spoofing — PoC, охватывающий проблему манипуляции временем транзакций (CVE-2024-45244) в блокчейне Hyperledger Fabric. | Kitploit
Инструменты/GitHubGitHub/shanker-sec/hlf_txtime_spoofing
Анализ уязвимостейЭксплуатацияКриптографияОбучение и Образование
GitHubshanker-sec/hlf_txtime_spoofing

HLF_TxTime_spoofing

PoC, охватывающий проблему манипуляции временем транзакций (CVE-2024-45244) в блокчейне Hyperledger Fabric.

Репозиторий
2162 лет назадЕщё не проверено
Сайт

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

HLF_TxTime_spoofing

HLF_TxTime_spoofing — PoC, описывающий проблему манипуляции временем транзакции (с использованием GetTxTimestamp() или GetHistoryForKey()) в блокчейне Hyperledger Fabric. Протестировано на версиях 2.5.5 и 3.0.0-beta.

Проект состоит из нескольких частей:

  1. time_insecure — уязвимая версия цепного кода, использующая GetTxTimestamp() для расчёта процентов по депозиту.
  2. time_secure_ntp — цепной код, использующий получение времени с NTP-сервера (Network Time Protocol) для защиты от подмены времени злоумышленником при расчёте процентов по депозиту.
  3. time_secure_nts — цепной код, использующий получение времени с NTS-сервера (Network Time Security) для защиты от подмены времени злоумышленником при расчёте процентов по депозиту.
  4. time_secure_localtime — цепной код, использующий время из ОС, в которой выполняется смарт-контракт, для защиты от подмены времени злоумышленником при расчёте процентов по депозиту. Во всех случаях (т.е. во всех цепных кодах) депозит составляет 20% годовых.

Дополнительные функции для понимания работы бизнес-логики: CalcDividents() — возвращает дивиденды, накопленные за заданное количество дней, и начальную сумму депозита. subtractTimestamp() — возвращает разницу между текущим временем и временем первоначального депозита.

Сценарий работы time_insecure

Вызовите Stake_insecure() для добавления депозита с начальной суммой. Вызовите CheckDividents_insecure(), чтобы убедиться, что сумма депозита не изменилась. Измените локальное время на клиенте и снова вызовите CheckDividents_insecure().

Финансовая атака: перевод времени на 1 год вперёд позволял получить 20% годовых.


Успешная финансовая атака

Аналогичным образом мы убеждаемся, что временем транзакции можно манипулировать в GetHistoryForKey().

Сценарий работы time_secure_ntp

В этом варианте цепного кода мы проверяем время транзакции по времени, полученному от NTP-сервера (Network Time Protocol) (с использованием пакета ntp client). Каждый цепной код имеет свой собственный адрес NTP-сервера (т.е. разные пакеты цепного кода) для распространения. В случае отклонения времени будет отображена ошибка: «неверное время». Обратите внимание, что трафик NTP может быть подделан (данные передаются в открытом виде).


Неуспешная финансовая атака

Сценарий работы time_secure_nts

В этом варианте цепного кода мы проверяем время транзакции по времени, полученному от NTS-сервера (Network Time Security) (с использованием пакета nts client). Каждый цепной код имеет свой собственный адрес NTS-сервера (т.е. разные пакеты цепного кода) для распространения. В случае отклонения времени будет отображена ошибка: «неверное время».


Неуспешная финансовая атака

Сценарий работы time_secure_localtime

В этом варианте цепного кода мы проверяем время транзакции по локальному времени (т.е. времени на узле-пире). В случае отклонения времени будет отображена ошибка: «неверное время». Обратите внимание, что на всех узлах-пирах требуется корректное время.


Неуспешная финансовая атака

Time Oracle

hlf-time-oracle — это цепной код для блокчейна Hyperledger Fabric, предоставляющий точное время другим цепным кодам. hlf-time-oracle основан на пакетах ntp и nts. Таким образом решается проблема безопасности, связанная с возможной манипуляцией временем транзакции со стороны клиента блокчейна. Цепной код предоставляет функции GetTimeNtp() и GetTimeNts(). Вызов этих функций создаёт запрос к серверам NTP (Network Time Protocol) и NTS (Network Time Security). Время, полученное от любого из этих серверов, может использоваться для проверки корректности времени транзакции, заданного на стороне клиента. Разработчики цепных кодов для блокчейна могут использовать hlf-time-oracle вместо самостоятельного написания кода взаимодействия с NTP и NTS серверами. hlf-time-oracle не сохраняет никаких данных в блокчейне во время своей работы.

Скачать инструмент