TGViewer
Just Security Just Security @justsecurity · 3.64K subscribers
Post #179 15.6K
Уязвимости в функциях загрузки файлов очень распространены.

При проведении анализа защищенности веб-приложений, важно знать, как обойти ограничения, так как это часто приводит к полной компрометации системы. А для разработчиков и инженеров полезно знать, как такие атаки происходят, чтобы корректно реализовать механизмы защиты.

Минимальный набор проверок File Upload:

→ Попробуйте различные расширения файлов: используйте разные варианты расширений файлов, например, php3, php4, php5, phtml для PHP-скриптов, asp, aspx и ashx для IIS. Список можно взять тут: https://github.com/danielmiessler/SecLists

→ Добавьте дополнительное расширение файла: если приложение не проверяет правильность расширения файла — добавьте еще одно расширение, например, из script.php в script.gif.php

→ Неправильная реализация Regex: например, некорректное регулярное выражение ".png|.jpeg" можно обойти с помощью следующей нагрузки bypasspng.php.

→ Измените регистр расширения: попробуйте разные комбинации строчных и прописных букв, например, pHp, PhP, phP, Php и т.д.

→ Приложение позволяет загружать файлы .svg?: SVG изображения — это просто данные XML. Используя XML, можно, например, добиться XSS.

→ Измените тип контента: при перехвате запроса с помощью Burp Suite, тип контента можно изменить, например, с "Content-type: application/x-php" на "Content-type: image/gif"

→ Добавьте magic байт в файл: магические байты служат подписями, которые используются веб-сервером для определения типа загружаемого файла. Например, добавив GIF87a в начало скрипта, сервер будет считать его файлом GIF. Например : Filename='1.php' , filetype: image/gif и начните содержимое файла с GIF29a

→ Попробуйте уменьшить размер файла: если используется ограничение размера файла, можно загрузить меньший скрипт для удаленного выполнения кода.

→ Попробуйте использовать исполняемые расширения: могут быть разрешены определенные исполняемые расширения, например .phtml, .shtml, .asa, .cer, .asax, .swf, или .xap.

→ Добавьте нулевой байт в имя файла: если сайт использует белые списки расширений файлов, их часто можно обойти, добавив %00 (HTML) или \x00 (hex) в конец имени файла. Например: php-reverse-shell.php%00.gif

→ Добавьте специальные символы перед расширением файла: на старых веб-серверах, добавление специальных символов, таких как ;%$&, сразу после имени файла, например, shell;.php, может помочь обойти белые списки расширений файлов.

→ Вставьте данные EXIF: исполняемый скрипт может быть вставлен в изображение в форме метаданных комментария, который затем будет выполнен, если веб-сервер обрабатывают эти данные.

→ Попробуйте использовать обозначение Windows 8.3 для имени файла: можно использовать короткую версию имени файла Windows 8.3. Например, shell.aspx станет SHELL~1.ASP

→ Попробуйте добавить нейтральные символы после имени файла: специальные символы, такие как пробелы или точки в Windows, или точки и слэши в Linux в конце имени файла, будут автоматически удалены (например, shell.aspx … … . . .. .., file.asp.).

→ Обход каталога: попробуйте использовать вместо имени файла ../../../../etc/passwd и подобные, возможно, вы наткнетесь на новую уязвимость

Полезные ссылки:

- Перезапись файла конфигурации сервера
- Обфускация расширений файлов
- Race condition при загрузке файлов
- Небезопасная десериализация, ведущая к полному захвату сервера
- OWASP Unrestricted File Upload

Накидывайте еще способы обхода и полезные ссылки по теме в комментарии!
  • 👍 13
  • ❤ 2
  • 🔥 1
  • 👨‍💻 1
More from @justsecurity
  1. Sep 16, 2026Важный повод поехать в Питер — ZeroNights 2026 дропнули программу конференции! В этом году…
  2. Sep 15, 2026Воооу! Наконец выпустили подкаст про пентест в финтехе! 🔥🔥🔥 Еще в июне встречались с Па…
  3. Sep 9, 2026А вы знали, что Андрей Масалович, известный как КиберДед, проводит камерные бизнес-бранчи…
  4. Aug 17, 2026👉 Pentest award 2026: итоги церемонии награждения 👈 Спасибо каждому, кто принял участие…
  5. Aug 15, 2026👉 Фотоотчет Pentest award 2026 Ценим вклад каждого 🫶 #pentestaward
  6. Aug 14, 2026В ожидании ✨
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →