XLabs Security · Boletim de exposição em campo · ED. 2026.04.23
O mesmo servidor, três bordas, uma planilha de cicatrizes.
Mantemos esta aplicação publicada de propósito, com vulnerabilidades conhecidas e instrumentação completa. O mesmo binário responde por quatro subdomínios — cada um atrás de uma camada de proteção diferente. O que cada borda deixa passar é registrado, classificado e comparado.
I · Pontos de observação
Quatro subdomínios apontando para a mesma origem
O modo é resolvido pelo cabeçalho Host de cada requisição. Não há reconfiguração da aplicação ao trocar de cenário — apenas o DNS muda.
| Subdomínio | Cenário | Modo |
|---|---|---|
| honey-pot.net | Tráfego passando pelo Cloudflare em plano gratuito (CDN + regras básicas). Bloqueia parte dos ataques mais óbvios. | Cloudflare Free |
| www.honey-pot.net | Servidor exposto diretamente, sem qualquer camada de proteção. Cenário usado como linha de base do experimento. | SEM WAF |
| cffree.honey-pot.net | Tráfego passando pelo Cloudflare em plano gratuito (CDN + regras básicas). Bloqueia parte dos ataques mais óbvios. | Cloudflare Free |
| xlabs.honey-pot.net | Tráfego protegido pela suíte XLabs Pro: WAF gerenciado, regras OWASP, anti-bot e CDN com mitigação L7 sob medida. | XLabs Pro |
II · Superfície de ataque
Registros vulneráveis publicados
Cada entrada abaixo é um alvo intencional. Ataques que cheguem até a origem
são gravados em AttackLog com modo, IP, payload e classificação.
-
REG-01
SQL Injection
Catálogo legado com identificador injetável
O parâmetro
GET /produtos/?id=1?id=entra direto em umSELECT. Qualquer payload UNION ou booleano funciona contra um SQLite isolado. -
REG-02
XSS Refletido
Busca interna que reflete sem sanitização
O termo digitado é renderizado com
GET /buscar/?q=...|safe. Suficiente para tags<script>,onerror,svge variantes. -
REG-03
Auth bypass
Login legado com SQL concatenado
O formulário monta a query por concatenação de strings. Aceita
POST /login/' OR '1'='1 --em qualquer dos campos. -
REG-04
Leak
Arquivo de ambiente publicado por engano
Conteúdo plausível com chaves fictícias de banco, JWT, Stripe e AWS - alvo clássico de exfiltração e reconhecimento.
GET /.env -
REG-05
Leak
Diretório
.git/servido pela webHEAD, config e index expostos. Marcador clássico de pipeline de deploy mal configurado.
GET /.git/config · /.git/HEAD · /.git/index -
REG-06
Recon
Painel administrativo legado sem autenticação
Página interna deixada em produção. O simples acesso já é sinal forte de reconhecimento.
GET /admin-legacy/ -
REG-07
Recon
wp-login.php como chamariz
Endpoint clássico de varredura de WordPress, mantido para detectar bots de força bruta e fingerprint.
GET /wp-login.php -
REG-08
Info disclosure
phpinfo() como info disclosure
Página fictícia de diagnóstico. Tipicamente bloqueada por regras OWASP em qualquer WAF gerenciado.
GET /phpinfo.php -
REG-09
Leak
backup.sql esquecido na raiz
Dump SQL fictício, alvo recorrente de exfiltração automática. Útil para medir bots que varrem por extensões comuns.
GET /backup.sql -
REG-10
LFI
Visualizador com Local File Inclusion
O parâmetro
GET /visualizar/?file=...?file=resolve caminhos absolutos e travessias../contra uma pseudo-raiz com arquivos clássicos (passwd, hosts, /proc/self/environ, .env). -
REG-11
Path Traversal
Path traversal em endpoint de download
Central de relatórios que aceita
GET /baixar/?arquivo=...?arquivo=sem normalização. Exfiltra qualquer caminho válido como anexo. -
REG-12
SSRF
Proxy de preview com SSRF
Aceita
GET /proxy/?url=...?url=arbitrária para "pré-visualizar" conteúdo. Alvos típicos: metadata cloud, redes internas, esquemasfile://,gopher://. -
REG-13
RCE
Ferramenta ping com Command Injection
Formulário de diagnóstico que aceita metacaracteres de shell. Demonstra
POST /ferramentas/ping/;,|,&&,$()e backticks contra um shell-out simulado. -
REG-14
Open Redirect
Open Redirect via parâmetro
?url=Aceita qualquer destino externo, sem allow-list. Vetor clássico de phishing apoiado em domínio "confiável".
GET /ir/?url=... -
REG-15
SSTI
Server-Side Template Injection no preview
Editor de "post" que avalia o template no servidor. Detecta
GET /preview/?body=...{{ var }},{% tag %},${expr}e<%= var %>com contexto fictício de segredos. -
REG-16
Leaks
Outras iscas de arquivos sensíveis
GET /.aws/credentials, /.htpasswd, /wp-config.php, ....aws/credentials,.htpasswd,wp-config.php,web.config,server-status,composer.jsone.svn/entries— alvos recorrentes de scanners e bots de varredura.
III · Iscas de CVEs publicados
Vitrines de produtos com falhas amplamente exploradas
Cada bait abaixo imita só a fachada de um produto vulnerável real. Nenhum
código do exploit é executado — sem chamadas JNDI, sem leitura do
sistema de arquivos, sem desserialização. Quando um scanner casa com a
assinatura, o evento entra em AttackLog com a categoria
cve e o identificador correspondente em notes.
A documentação completa dos limites de cada isca está em
docs/CVES-CONTROLADAS.md.
-
REG-17
CVE-2017-10271
Oracle WebLogic
wls-wsat— XMLDecoder RCEWSDL fictício do componente WSAT. Detecta
POST /wls-wsat/CoordinatorPortTypePOSTcomjava.beans.XMLDecoder,ProcessBuilderouvoid class="..."no corpo SOAP. -
REG-18
CVE-2021-44228
Log4Shell — Log4j JNDI lookup em qualquer cabeçalho
A assinatura casa com
qualquer rota · cabeçalho ou payload com${jndi:ldap://...},${jndi:rmi://},${jndi:dns://}e variantes obfuscadas (${${::-j}ndi:) em User-Agent, Referer, query string ou body.${jndi:...} -
REG-19
CVE-2022-22965
Spring4Shell — gravação via
class.module.classLoaderDetecta payloads
qualquer rota ·class.module.classLoader.resources.context.parent.pipeline.first.*em formuláriosPOST, mesmo quando codificados com%2eou[entre colchetes.POSTcomclass.module.classLoader.* -
REG-20
CVE-2023-22527
Atlassian Confluence — template injection em
text-inline.vmPágina HTML que parodia o Confluence Data Center. Detecta payloads OGNL/Velocity como
POST /template/aui/text-inline.vm$stack.findValue("..."),%7B%7Bnew%20freemarkere variantes comlabel+valuearbitrário. -
REG-21
CVE-2024-3400
Palo Alto GlobalProtect —
SESSIDcom path traversalReplica a tela de login do PAN-OS GlobalProtect. Detecta cookies
GET /global-protect/login.esp · cookieSESSID=../../../../e nomes de arquivo de telemetria escritos pelo exploit (panlogs.tdb).SESSID -
REG-22
CVE-2024-4577
PHP-CGI — argument injection via soft-hyphen (
%AD)Página falsa de
GET /php-cgi/php-cgi.exe?-d+...phpinfo(). Detecta o byte0xAD(soft hyphen) em qualquer codificação —%AD,%c2%ad, byte cru ou caractere de substituição — combinado com flags-d,auto_prepend_fileouallow_url_include. -
REG-23
CVE-2024-23897
Jenkins CLI — leitura arbitrária via
@arquivoResposta texto/plain imitando o handshake do Jenkins CLI. Detecta o uso de
POST /cli · argumento começando com@/etc/passwd,@/etc/shadowou comandosconnect-node/who-am-icom argumento iniciado por@.@ -
REG-24
CVE-2024-36401
GeoServer OWS — OGNL/JXPath em
valueReferenceXML estilo WFS Capabilities. Detecta
GET /geoserver/ows · /geoserver/wfs · /geoserver/wmsexec(java.lang.Runtime.getRuntime(),...),org.springframeworkeRuntime.getRuntime().exec(dentro do parâmetrovalueReference. -
REG-25
CVE-2025-0282
Ivanti Connect Secure — paths de reconhecimento
/dana-na/Página HTML que simula o portal "Ivanti Secure Access". Detecta o trio de URLs usado no estágio inicial do CVE-2025-0282 (welcome, login, getComponent) sem expor nenhum binário real.
GET /dana-na/auth/url_default/welcome.cgi -
REG-26
CVE-2025-24813
Apache Tomcat
/manager— desserialização de sessão (PUT)Tela 401 do
PUT /manager/html/<arquivo>.sessionTomcat Manager. DetectaPUTcom sufixo.session,aced0005(header de objeto Java) ou caminhos com/..característicos do CVE-2025-24813. -
REG-27
CVE-2025-55182
React2Shell — Server Actions do Next.js (RSC)
Homepage Next.js com chunk RSC fictício. Detecta cabeçalhos
POST /_next/actions · POST /api/action · cabeçalhoNext-Action/Rsc-Action-Id, payloads"$@N","$1:constructor:constructor"e marcadoresresolved_model/$B<hex>usados pelo exploit do CVE-2025-55182.Next-Action
Como ler a comparação
Acesse o mesmo recurso em cada subdomínio, ou aponte seu DNS local para diferentes hosts. Se o request chega até aqui, ele aparece em /dashboard/ com o modo de implantação correspondente. Quando a borda bloqueia, o evento simplesmente não chega à origem — e essa é a métrica mais honesta possível.
Nada aqui toca configuração real, segredos ou banco principal. SQLite isolado, conteúdo dos "leaks" hard-coded e fictício.