
CVE-2022-22978漏洞实例代码
Пример кода для уязвимости CVE-2022-22978
Хотя уязвимость классифицируется как высокая, условия её эксплуатации довольно строгие, лично я считаю эту уязвимость довольно ограниченной.
. для сопоставления путей, например:
regexMatcher("/api/.*") // разрешить все подпути под /apiregexMatcher("/files/.*\\.jpg") // сопоставлять все запросы файлов, заканчивающихся на .jpgregexMatcher("/user/.*/profile") // разрешить путь profile для любого имени пользователя в /userregexMatcher("/api/.*"), то также необходим контроллер с аннотацией наподобие @RequestMapping("/api/*"), который обрабатывает все запросы по указанному пути. Иначе даже если обойти правило соответствия путей spring-security с помощью %0a%0d, всё равно будет ошибка 404.При обычном доступе ко всем путям происходит перенаправление на страницу входа по умолчанию, предоставляемую spring-security.

Переход по адресу: http://127.0.0.1:8080/admin/admin%0a — успешный обход аутентификации.

Переход по адресу: http://127.0.0.1:8080/hello%0a — обход проверки безопасности, требующей аутентификации для всех путей, но из-за отсутствия контроллера с аннотацией @RequestMapping("/hello/*") сопоставление не удаётся, ошибка 404.
