Про практическую кибербезопасность без воды и рекламы.
Авторы — awillix.ru 😼 одна из лучших offensive-компаний в России.
Pentest award — award.awillix.ru
Подкаст — https://www.youtube.com/@awillix_security
Контакт: @popsa_lizaa
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: например, некорректное регулярное выражение
→ Измените регистр расширения: попробуйте разные комбинации строчных и прописных букв, например, pHp, PhP, phP, Php и т.д.
→ Приложение позволяет загружать файлы .svg?: SVG изображения — это просто данные XML. Используя XML, можно, например, добиться XSS.
→ Измените тип контента: при перехвате запроса с помощью Burp Suite, тип контента можно изменить, например, с
→ Попробуйте использовать исполняемые расширения: могут быть разрешены определенные исполняемые расширения, например
→ Добавьте нулевой байт в имя файла: если сайт использует белые списки расширений файлов, их часто можно обойти, добавив
→ Вставьте данные EXIF: исполняемый скрипт может быть вставлен в изображение в форме метаданных комментария, который затем будет выполнен, если веб-сервер обрабатывают эти данные.
→ Попробуйте использовать обозначение Windows 8.3 для имени файла: можно использовать короткую версию имени файла Windows 8.3. Например,
→ Обход каталога: попробуйте использовать вместо имени файла
Полезные ссылки:
- Перезапись файла конфигурации сервера
- Обфускация расширений файлов
- Race condition при загрузке файлов
- Небезопасная десериализация, ведущая к полному захвату сервера
- OWASP Unrestricted File Upload
Накидывайте еще способы обхода и полезные ссылки по теме в комментарии!
При проведении анализа защищенности веб-приложений, важно знать, как обойти ограничения, так как это часто приводит к полной компрометации системы. А для разработчиков и инженеров полезно знать, как такие атаки происходят, чтобы корректно реализовать механизмы защиты.
Минимальный набор проверок 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

















