Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
hfs2 — CVE-2024-23692 | Fix della vulnerabilità RCE in HFS 2.3m/2.4-RC07 | Kitploit
Strumenti/GitHubGitHub/wgetnz/hfs2
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingStrumento di Accesso Remoto
GitHubwgetnz/hfs2

hfs2

CVE-2024-23692 | Fix della vulnerabilità RCE in HFS 2.3m/2.4-RC07

Vedi Repository
26 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Introduction

You can use HFS (HTTP File Server) to send and receive files. It's different from classic file sharing because it uses web technology. It also differs from classic web servers because it's very easy to use and runs "right out-of-the box".

The virtual file system will allow you to easily share even one single file.


Security — CVE-2024-23692

Panoramica della vulnerabilità

Scarica lo strumento
CampoValore
ID CVECVE-2024-23692
Versioni interessateHFS 2.3m, HFS 2.4.0 RC07 e versioni precedenti
Tipo di vulnerabilitàEsecuzione remota di codice non autenticata (Unauthenticated RCE)
Punteggio CVSS9.8 Critical
Vettore d'attaccoRaggiungibile via rete, nessuna autenticazione richiesta, nessuna interazione con l'utente

Principio della vulnerabilità

Il motore di template di HFS, durante l'elaborazione della macro {.?search.} (che legge i parametri della query URL), chiama ricorsivamente applyMacrosAndSymbols2() sul valore restituito, causando l'esecuzione della stringa controllata dall'utente come codice di template.

La catena di attacco si articola in quattro passaggi:

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

Esempio di POC (solo per ricerca di sicurezza):

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

Soluzione di correzione

File corretto: scriptLib.pas

Funzione principale: noMacrosAllowed() (righe 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;

Punti di chiamata: tutti gli input controllati dall'utente vengono elaborati da questa funzione prima di essere restituiti al motore di template:

Punto di chiamataAmbito di protezione
urlVar() riga 548Tutti i parametri della query URL {.?name.}
Riga 698Lettura delle variabili di template
Riga 1549Valori dei cookie
Riga 2089Valori decodificati dall'URL
Riga 2165Intestazioni delle richieste HTTP
Riga 2173Parametri dei moduli POST

Effetto della correzione: dopo l'elaborazione, il parametro search del POC viene convertito in entità HTML in tutti i marcatori di macro e nei riferimenti ai simboli, impedendo al motore di macro di eseguirli.


Dev notes

Initially developed in 2002 with Delphi 6, now with Delphi 10.3.3 (Community Edition). Icons are generated at http://fontello.com/ . Use fontello.json for further modifications.

For the default template we are targeting compatibility with Chrome 49 as it's the latest version running on Windows XP.

Libs used

  • ICS v8.64 by François PIETTE
  • TRegExpr v0.952b by Andrey V. Sorokin
  • JEDI Code Library v2.7
  • Kryvich's Delphi Localizer v4.1