支持本站 — 捐款将帮助我们持续运营

目标:1000 元,已筹:752

75.2%

POC详情: 7a23e2d59f3059a743b1d713ea0fc286d5aa0b02

来源
关联漏洞
标题:Laravel Framework 安全漏洞 (CVE-2018-15133)
描述:Laravel framework是软件开发者Taylor Otwell开发的一款基于PHP的Web应用程序开发框架。 Laravel framework 5.5.40及之前版本和5.6.x版本至5.6.29版本中存在安全漏洞。远程攻击者可借助应用程序的密钥利用该漏洞执行代码。
介绍
# CVE-2018-15133-PoC

Este script Python implementa un exploit de ejecución remota de código (RCE) para aplicaciones Laravel vulnerables mediante deserialización insegura, basándose en la vulnerabilidad CVE-2018-15133.

El exploit aprovecha una vulnerabilidad en Laravel (versiones 5.5.40 y anteriores, y 5.6.0 a 5.6.29) donde las sesiones cifradas son automáticamente deserializadas sin validación adecuada. Con acceso a la clave APP_KEY de Laravel, un atacante puede cifrar payloads maliciosos que serán deserializados y ejecutados en el servidor.

# Funcionamiento del Sistema de Sesiones Laravel
Laravel utiliza un mecanismo de cifrado simétrico para las sesiones con tres componentes:

- IV (Initialization Vector): Vector de inicialización aleatorio generado para cada sesión

- Value: Valor cifrado usando AES-128-CBC o AES-256-CBC

- MAC: Código de autenticación de mensaje (HMAC-SHA256) calculado sobre IV + value + APP_KEY

## Proceso:

- Recibe tres parámetros de entrada: la clave APP_KEY de Laravel en base64, el comando a ejecutar y el dominio objetivo

- Invoca la herramienta PHPGGC con el gadget chain Laravel/RCE5 para generar una cadena de objetos PHP maliciosos

- Construye el comando del sistema operativo que se ejecutará en el servidor víctima (ejemplo: system('whoami');)

- Genera el payload serializado PHP que contiene los gadgets encadenados

- Decodifica el payload de base64 a formato binario

- Procesa la clave APP_KEY eliminando el prefijo "base64:" si existe

- Completa el padding necesario para que la clave sea base64 válido

- Decodifica la clave de base64 a bytes

- Genera un vector de inicialización (IV) aleatorio de 16 bytes

- Cifra el payload usando AES en modo CBC con la clave y el IV

- Aplica padding PKCS7 al payload antes del cifrado

- Codifica el IV en base64

- Codifica el ciphertext (payload cifrado) en base64

- Concatena IV y value en base64 como mensaje para el HMAC

- Calcula el MAC usando HMAC-SHA256 sobre el mensaje concatenado con la clave como secreto

- Construye un objeto JSON con tres campos: iv, value y mac

- Codifica el JSON completo en base64

- Construye una petición HTTP usando curl con el payload en la cookie laravel_session

- Envía la petición al dominio objetivo

- El servidor Laravel recibe la cookie y decodifica el base64

- Laravel verifica la integridad del MAC contra el IV y value recibidos

- Laravel descifra el contenido usando AES-CBC con su APP_KEY

- Laravel deserializa automáticamente el contenido descifrado

- PHP invoca las funciones mágicas __destruct() o __wakeup() de los objetos deserializados

- Se desencadena la cadena de gadgets que culmina en call_user_func() o eval()

- El comando del sistema operativo se ejecuta en el servidor

El exploit utiliza cadenas de gadgets que encadenan llamadas a funciones mágicas de PHP:

Durante la deserialización, PHP invoca automáticamente `__destruct()` o `__wakeup()`, iniciando la cadena que culmina en `eval()` ejecutando código arbitrario.

Requisitos Previos
Para que el exploit funcione, el atacante necesita:

- La clave APP_KEY de Laravel (obtenida mediante filtración de variables de entorno, buckets S3 expuestos, código fuente, etc.)

- Versión vulnerable de Laravel con deserialización habilitada por defecto

- PHPGGC instalado en el directorio ./phpggc/ https://github.com/ambionics/phpggc

Ejemplo de Uso

``` bash
python exploit.py "base64:dGhpc2lzYXNlY3JldGtleQ==" "whoami" "http://target.htb"
Este comando generará un payload serializado que ejecutará whoami cuando Laravel deserialice la sesión.
```






文件快照

[4.0K] /data/pocs/7a23e2d59f3059a743b1d713ea0fc286d5aa0b02 ├── [2.1K] exploit.py └── [3.5K] README.md 1 directory, 2 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。