На странице
Web Shell Upload через Path Traversal
Лаборатория
Web shell upload via path traversal · Apprentice
Решение
Дано
This lab contains a vulnerable image upload function. The server is configured
to prevent execution of user-supplied files, but this restriction can be
bypassed by exploiting a secondary vulnerability.
To solve the lab, upload a basic PHP web shell and use it to exfiltrate the
contents of the file /home/carlos/secret. Submit this secret using the button
provided in the lab banner.
You can log in to your own account using the following credentials: wiener:peter
Анализ и разведка
Суть как и в предыдущей лабе. Только на этот раз нужно использовать техники path traversal для загрузки файла в директорию, где наш шелл будет исполнен.
Зальём файл через сайт. Залился, открываем — открылся просто как текст.
Окей, тогда попробуем залить в директорию выше:
Content-Disposition: form-data; name="avatar"; filename="../shell.php"
Сервер пишет, что залил всё-таки в прежнее место. Ок, попробуем энкодинг:
Content-Disposition: form-data; name="avatar"; filename="%2e%2e%2fshell.php"
The file avatars/../shell.php has been uploaded
Сработало!
FU2yHUj75eKOuqf4Zp5L9CLf6N96aTDH
Лаба решена!
Ещё в этой категории
Web Shell Upload через обход блек-листа расширений (PortSwigger Lab)
.php в блек-листе, но .htaccess заливается без вопросов — подсовываем свой конфиг Apache и заставляем сервер исполнять shell.bug как PHP.
Web Shell Upload через обфускацию расширения (PortSwigger Lab)
Блек-лист расширений не пускает .php, двойное расширение shell.php.jpg отдаётся как картинка — null-byte shell.php%00.jpg обходит обе проверки.
Remote Code Execution через загрузку web shell (PortSwigger Lab)
Загрузка аватарки без валидации — заливаем PHP web shell и читаем /home/carlos/secret.