Разработчики часто напрямую используют или объединяют потенциально уязвимые входные данные с файлами или предполагают, что входные файлы являются подлинными. Если данные не проверены должным образом, это может привести к тому, что уязвимый контент будет обрабатываться или вызываться веб-сервером.
пример
Некоторые из классических примеров включают в себя —
- Загрузите файл .jsp в веб-дерево.
- Загрузите .gif для изменения размера.
- Загрузите огромные файлы.
- Загрузите файл, содержащий теги.
- Загрузить файл .exe в веб-дерево.
Руки вверх
Шаг 1 — Запустите WebGoat и перейдите к разделу «Вредоносный файл». Снимок сценария приведен ниже —
Шаг 2 — Чтобы завершить этот урок, нам нужно загрузить guest.txt в указанном выше месте.
Шаг 3 — Давайте создадим файл jsp так, чтобы файл guest.txt создавался при выполнении jsp. Именование jsp не играет никакой роли в этом контексте, так как мы выполняем содержимое файла jsp.
<HTML> <% java.io.File file = new java.io.File("C:\\Users\\username$\\.extract\\webapps\\WebGoat\\mfe_target\\guest.txt"); file.createNewFile(); %> </HTML>
Шаг 4 — Теперь загрузите файл JSP и скопируйте расположение ссылки там же после загрузки. Загрузка ожидает изображение, но мы загружаем jsp.
Шаг 5 — Перейдя к файлу jsp, пользователь не получит никаких сообщений.
Шаг 6 — Теперь обновите сеанс, в который вы загрузили файл jsp, и вы получите сообщение «Поздравляем. Вы успешно завершили урок».