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

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

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

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

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

Категории

Все категории
Loading categories
hfs2 — CVE-2024-23692 | HFS 2.3m/2.4-RC07 исправление уязвимости RCE | Kitploit
Инструменты/GitHubGitHub/wgetnz/hfs2
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеИнструмент Удаленного Доступа
GitHubwgetnz/hfs2

hfs2

CVE-2024-23692 | HFS 2.3m/2.4-RC07 исправление уязвимости RCE

Репозиторий
5 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

Введение

Вы можете использовать HFS (HTTP File Server) для отправки и получения файлов. Он отличается от классического обмена файлами тем, что использует веб-технологии. А от классических веб-серверов он отличается тем, что очень прост в использовании и работает «прямо из коробки».

Виртуальная файловая система позволит вам легко поделиться даже одним-единственным файлом.


Безопасность — CVE-2024-23692

Обзор уязвимости

ПолеЗначение
Идентификатор CVECVE-2024-23692
Затронутые версииHFS 2.3m, HFS 2.4.0 RC07 и ниже
Тип уязвимостиНеаутентифицированное удалённое выполнение кода (Unauthenticated RCE)
Оценка CVSS9.8 Critical
Вектор атакиДоступен по сети, не требует аутентификации и взаимодействия с пользователем

Принцип уязвимости

Шаблонный движок HFS при обработке макроса {.?search.} (считывающего параметры URL-запроса) рекурсивно вызывает applyMacrosAndSymbols2() для возвращаемого значения, из-за чего управляемая пользователем строка выполняется как код шаблона.

Цепочка атаки состоит из четырёх шагов:

root@kitploit:~
1. 构造包含 %url% 的 search 参数
         ↓
2. %url% 展开为 macroQuote(完整URL) = {:url_including_payload:}
         ↓
3. %password% 展开为空字符串,导致 {:...:} 引用块提前关闭
         ↓
4. 引用块外的 {.exec|cmd.} 被宏引擎执行 → RCE

Пример POC (только для исследований безопасности):

root@kitploit:~
GET /?n=%0A&cmd=whoami&search=%25xxx%25url%25:%password%}{.exec|{.?cmd.}|timeout=15|out=abc.}{.?n.}{.?n.}RESULT:{.?n.}{.^abc.}===={.?n.} HTTP/1.1

Исправление

Исправляемый файл: scriptLib.pas

Ключевая функция: noMacrosAllowed() (строки 109–123)

root@kitploit:~
function noMacrosAllowed(s:string):string;
// prevent hack attempts
begin
  // 步骤 1:将所有宏标记的首字符替换为 HTML 实体
  //   {.  →  {.       .}  →  .}
  //   {:  →  {:       :}  →  :}
  //   |   →  |
  repeat
    i := findMacroMarker(s, i);
    if i = 0 then break;
    replace(s, '&#' + intToStr(charToUnicode(s[i])) + ';', i, i);
  until false;

  // 步骤 2:将 %symbol% 形式的符号引用替换为 HTML 实体
  //   %url%       →  %url%
  //   %password%  →  %password%
  s := reReplace(s, '%([-a-z0-9]+)%', '%$1%', 'mi');
  result := s;
end;

Места вызова: все пользовательские данные проходят через эту функцию перед возвратом в шаблонный движок:

Результат исправления: после обработки параметра search из POC все макросы и ссылки на символы превращаются в HTML-сущности и больше не могут запустить макро-движок.


Заметки для разработчиков

Изначально разработан в 2002 году на Delphi 6, сейчас используется Delphi 10.3.3 (Community Edition). Иконки генерируются на http://fontello.com/ . Используйте fontello.json для дальнейших изменений.

Для шаблона по умолчанию мы ориентируемся на совместимость с Chrome 49, поскольку это последняя версия, работающая на Windows XP.

Используемые библиотеки

  • ICS v8.64 от François PIETTE
  • TRegExpr v0.952b от Andrey V. Sorokin
  • JEDI Code Library v2.7
  • Delphi Localizer от Kryvich v4.1
Скачать инструмент
Место вызоваОбласть защиты
urlVar(), строка 548Все URL-параметры запроса {.?name.}
Строка 698Чтение переменных шаблона
Строка 1549Значения Cookie
Строка 2089Декодированные URL-значения
Строка 2165Заголовки HTTP-запросов
Строка 2173Параметры POST-форм