
Analisa o CVE-2025-60423, uma bypass de autenticação nas versões 7.2.8 e 7.2.9 do JEECG, detalhando técnicas de path traversal e codificação de URL para contornar filtros e acessar endpoints protegidos.
Este bypass de autenticação é semelhante ao bypass de permissões do Shiro
No método dofilterInternal da classe sessionfilter, o parâmetro dofilter é true por padrão, e somente quando ele é false é que a autenticação pode ser ignorada
Seguindo até o método matches, veja que este código irá comparar a url com as 134 strings de caminho em patterns, e quando a correspondência for bem-sucedida, retornará true, permitindo que dofilter seja true
Então continue depurando até que o loop possa entrar na condição de verificação, momento em que o pattern é /static.*?

Portanto, basta adicionar /static/.. antes de qualquer caminho de diretório do backend para contornar a autenticação Na verdade, aqui não é apenas /static/.. que funciona; em patterns, qualquer caminho de camada única seguido de .*? pode ser usado para o bypass Exemplo:
/error/.*?
/adminseal.zz/.*?
/dwr/.*?
...
Não encontrei todos, mas qualquer um que siga essa regra funciona
Na nova versão 7.2.9, foi adicionada uma etapa de verificação da url

Seguindo para checkErrorUrl, descobrimos que ele verifica a existência de ..

Ainda combinando com as ideias de bypass dos CVEs do Shiro, aplicamos uma codificação de url em .. e conseguimos contornar com sucesso
Payload:
POST /static/%2e%2e/je/sysConfig/sysConfig/loadSysVariables HTTP/1.1 1
Vazamento de senhas sem criptografia do lado web
