
Analizza CVE-2025-60423, un bypass dell'autenticazione nelle versioni 7.2.8 e 7.2.9 di JEECG, descrivendo le tecniche di path traversal e codifica URL per aggirare i filtri e accedere agli endpoint protetti.
Questo bypass dell'autenticazione è simile al bypass dei permessi di Shiro
Nel metodo dofilterInternal della classe sessionfilter, il parametro predefinito dofilter è true, e solo quando è false si può evitare l'autenticazione
Seguendo il metodo matches, si vede che questo codice confronta l'URL con 134 stringhe di percorso in patterns; quando la corrispondenza ha successo restituisce true, consentendo così a dofilter di essere true
Poi si continua a eseguire il debug finché il ciclo non entra nella condizione di controllo, a quel punto pattern è /static.*?

Quindi basta aggiungere /static/.. davanti a qualsiasi percorso di directory del backend per bypassare l'autenticazione In realtà qui non funziona solo /static/..; in patterns, qualsiasi percorso a livello singolo seguito da .*? può essere utilizzato per il bypass Esempio:
/error/.*?
/adminseal.zz/.*?
/dwr/.*?
...
Non li ho trovati tutti, ma tutto ciò che soddisfa questa regola funziona
Nella nuova versione 7.2.9 è stato aggiunto un passaggio per controllare l'URL

Entrando in checkErrorUrl, si scopre che controlla la presenza di ..

Combinando ancora le idee di bypass dei vari CVE di Shiro, codificando .. una volta in URL si riesce a bypassare
Payload:
POST /static/%2e%2e/je/sysConfig/sysConfig/loadSysVariables HTTP/1.1 1
Divulgazione di password non crittografate sul lato web
