TGViewer
Coffee cube Coffee cube @coffee_cube · 474 subscribers
Post #106 378
Привет^3☕️

Было бы глупо предположить, что разработчики не задумывались о способах защиты от уязвимостей при загрузке файлов ( ну пожалуйста ).

Сегодня поговорим об обходах различных методов защиты.

👎Блеклист

Звучит здорово. Если мы не хотим получить какой-то файл, то просто запретим его. 🎆ГЕНИАЛЬНО!🎆
Но есть нюанс: вы запретили .html, а вот к вам уже летит .xhtml. Здорово...

Обойти блеклист вполне реально - нужно лишь попробовать достаточное количество расширений.
Лучше использовать вайтлисты: Надо - разрешил. Вот и все.

🗿Покажите на что вы способны

Окей, вы используете вайтлист. Молодцы. Защищены ли вы теперь? Нуууу нет. Как так вышло?

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

📌Например:

символ \0 можно закодировать в URL как %00.
Во многих языках программирования он означает конец строки.

Файл с именем file.py%00.png может пройти вайтлистинг, а при нормализации превратиться в file.py.

Защита: проверяйте подозрительные символы в передаваемых путях.

💃Вы хотите веселья? Их есть у меня

Есть такие интересные файлы — полиглоты.
Они изменяют свое поведение в зависимости от того, кто и как их открывает.

Это может сработать, если проверяется не только расширение, но и содержимое (меджик, хедер или футер).
Тема интересная, думаю, стоит поговорить о таких файлах в отдельном посте.

🛡Рекомендуемые способы защиты
➖Проверять расширение по вайтлисту, а не по блеклисту. Проще выбрать допустимые расширения, чем запрещать всё потенциально опасное.
➖Проверять имя файла на наличие подозрительных подстрок.
➖Переименовывать загруженные файлы, чтобы избежать коллизий.
➖Не загружать файлы в постоянную файловую систему, пока они не будут проверены.
➖Использовать встроенные функции проверки файлов, а не писать кастомные.


✍️Самостоятельно попробовать разные обходы можно в данных лабах:
✏️Web shell upload via extension blacklist bypass
✏️Web shell upload via obfuscated file extension
✏️Remote code execution via polyglot web shell upload


➥ ☕️ тг • 🤬чатик • ✍️посты

#web #writeup
  • ❤ 7
  • 👍 2
  • ❤‍🔥 1
  • ✍ 1
  • 😎 1
More from @coffee_cube
  1. Sep 16, 2026Привет^3☕️ cron есть почти везде, а оператор @reboot выполняет команду один раз при загруз…
  2. Sep 11, 2026Привет^3☕️ Достаточно богатая на события неделя. Вышла запись моего доклада на OFFZONE 202…
  3. Sep 10, 2026Семечко от Mango. Разбираем и воспроизводим уязвимость в роутере по описанию с NVD 👑 Стат…
  4. Sep 10, 2026Привет^3☕️ А у меня статья вышла. Сам в шоке🫤 ↖️ 📕тг • 🤬чатик • ✏️посты • 📹yt • 💞Twit…
  5. Sep 9, 2026Привет^3☕️ Свершилось😇Наконец я выступлю с докладом в своем городе и мне не нужно собират…
  6. Sep 2, 2026Привет^3☕️ Реликт до-systemd эпохи: скрипты в /etc/init.d/ c обработкой start/stop. На сов…
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 →