Какая в данном случае присутствует брешь в безопасности в скрипте загрузки картинки?

Есть скрипт загрузки аватара на сайт. Вот строка, выполняющая основную работу:
move_uploaded_file($_FILES['avatar']['tmp_name'], $uploaddir."$username.jpg"

где $username — имя пользователя. Для пользователя user — файл user.jpg.
Система довольно глупая и дырявая. Почитав статью на хабре, я пытался залить php-скрипт, регистрируясь под разными логинами, но не получилось.
Как все-таки это сделать? Как залить php на сервер под видом аватара?
Максимальная длина логина — 8 символов. Дополнительные проверки отсутствуют.
  • Вопрос задан
  • 621 просмотр
Пригласить эксперта
Ответы на вопрос 4
riky
@riky
Laravel
username
/../../../images/site-logo

путь придуманный - уязвимость - заменить любой jpg файл на сервере, если в имени юзера не запрещены символы слеша
Ответ написан
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Например логин: user.php?
Ответ написан
PavelK
@PavelK
К картинке добавьте php код в самом конце, потом просто откройте эту картинку напрямую и профит.
Это "классический" способ.
Ответ написан
dima9595
@dima9595
Junior PHP
Советую в дополнение ко всем ответам проверять MIME тип.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
30 апр. 2024, в 16:03
2500 руб./за проект
30 апр. 2024, в 15:24
3000 руб./за проект
30 апр. 2024, в 15:11
500 руб./в час