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

Есть скрипт загрузки аватара на сайт. Вот строка, выполняющая основную работу:
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 тип.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 13:47
1000 руб./за проект
26 апр. 2024, в 13:40
4000 руб./за проект
26 апр. 2024, в 13:39
500 руб./за проект