Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
hfs2 — CVE-2024-23692 | Corrección de la vulnerabilidad RCE en HFS 2.3m/2.4-RC07 | Kitploit
Herramientas/GitHubGitHub/wgetnz/hfs2
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónHerramienta de Acceso Remoto
GitHubwgetnz/hfs2

hfs2

CVE-2024-23692 | Corrección de la vulnerabilidad RCE en HFS 2.3m/2.4-RC07

Ver Repositorio
hace 5 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Introducción

Puedes usar HFS (servidor de archivos HTTP) para enviar y recibir archivos. Se diferencia del intercambio de archivos clásico porque usa tecnología web. También se diferencia de los servidores web clásicos porque es muy fácil de usar y funciona "listo para usar".

El sistema de archivos virtual te permitirá compartir fácilmente incluso un solo archivo.


Seguridad — CVE-2024-23692

Resumen de la vulnerabilidad

CampoDetalle
ID de CVECVE-2024-23692
Versiones afectadasHFS 2.3m, HFS 2.4.0 RC07 y anteriores
Tipo de vulnerabilidadEjecución remota de código no autenticada (Unauthenticated RCE)
Puntuación CVSS9.8 Critical
Vector de ataqueAccesible en red, sin autenticación, sin interacción del usuario

Principio de la vulnerabilidad

El motor de plantillas de HFS, al procesar la macro {.?search.} (que lee los parámetros de consulta de la URL), invoca recursivamente applyMacrosAndSymbols2() sobre el valor devuelto, lo que provoca que una cadena controlada por el usuario se ejecute como código de plantilla.

La cadena de ataque consta de cuatro pasos:

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

Ejemplo de POC (solo para investigación de seguridad):

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

Solución

Archivo corregido: scriptLib.pas

Función principal: noMacrosAllowed() (líneas 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;

Puntos de llamada: Todas las entradas controlables por el usuario se procesan con esta función antes de devolverse al motor de plantillas:

Efecto de la corrección: Después del procesamiento del parámetro search del POC, todas las marcas de macro y referencias a símbolos se convierten en entidades HTML, por lo que ya no se puede activar la ejecución del motor de macros.


Notas de desarrollo

Desarrollado inicialmente en 2002 con Delphi 6, ahora con Delphi 10.3.3 (Community Edition). Los iconos se generan en http://fontello.com/ . Usa fontello.json para modificaciones posteriores.

Para la plantilla predeterminada, apuntamos a la compatibilidad con Chrome 49, ya que es la última versión que se ejecuta en Windows XP.

Bibliotecas usadas

  • ICS v8.64 por François PIETTE
  • TRegExpr v0.952b por Andrey V. Sorokin
  • JEDI Code Library v2.7
  • Kryvich's Delphi Localizer v4.1
Descargar herramienta
Ubicación de la llamadaAlcance de la protección
urlVar() línea 548Todos los parámetros de consulta de URL {.?name.}
Línea 698Lectura de variables de plantilla
Línea 1549Valores de cookies
Línea 2089Valores decodificados de URL
Línea 2165Cabeceras de solicitud HTTP
Línea 2173Parámetros de formulario POST