Spring Boot - уязвимость при загрузке файлов - PullRequest
0 голосов
/ 03 августа 2020

Я хочу продемонстрировать уязвимость загрузки файлов в среде Spring Boot. Я уже реализовал функцию загрузки, и у пользователя есть доступ к загруженным файлам.

Прямо сейчас я возвращаюсь к пользователю, если он запрашивает файл загрузки:

@GetMapping(value="/files/{filename:.+}",produces = MediaType.ALL_VALUE)
@ResponseBody
public ResponseEntity<Resource> serveFile(@PathVariable String filename, HttpServletResponse response) throws IOException {
        Resource file = storageService.loadAsResource(filename);
        ResponseEntity<Resource> responseEntity = new ResponseEntity<>(file, headers, HttpStatus.OK);
        return responseEntity;
}

Но, очевидно, если Я загружаю код PHP, он не будет выполняться, так как в Spring Boot нет интерпретатора PHP. Кроме того, я подумал о загрузке HTML файлов, уже введенных с помощью SSTI, например: th: utext = "$ {T (java .lang.Runtime) .getRuntime (). Exe c ('touch testFile.txt' )} "Но опять же, Themeleaf по умолчанию не отображает. Есть ли что-нибудь еще, что я могу загрузить и выполнить, что может дать мне RemoteCodeExecution в системе?

...