TGViewer
Standoff Bug Bounty Tips Standoff Bug Bounty Tips @standoff_bb_tips · 1.66K subscribers
Post #108 950
📦 Archive Alchemist: уязвимости, основанные на архивах

Одно из главных отличий между успешными и не очень успешными багхантерами заключается в том, что последние не видят закономерности в приложении.

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


Mathias Karlsson представил инструмент Archive Alchemist, чтобы автоматизировать работу, связанную с уязвимостями архивов. Он возник после частых встреч с ошибками в архивах, которые требовали создания кастомных архивов и глубокого погружения в документацию.

💡 Три основных вектора атак:

▪️ Path Traversal (классический zip slip), позволяющий извлекать файлы за пределы целевых директорий с помощью путей вроде ../;
▪️ Link-Based Overwrites, где символические или жесткие ссылки могут привести к размещению файлов за пределами путей извлечения, что может привести к RCE;
▪️ Parser Differential Bugs, когда различия в парсерах позволяют обходить проверки безопасности.

Archive Alchemist автоматизирует и упростит эксплуатацию основных уязвимостей 👇

🤔 Несоответствия имен файлов в ZIP

Различия в Central Directory Header, Local File Header и Unicode Path создают возможности для атак. Проверка может использовать Central Directory Header, показывающий file.json, в то время как извлечение полагается на поле Unicode Path с содержимым ../../../../etc/passwd.

Дополнительные векторы атак включают проблемы с UTF-16, несоответствия CRC и ошибки обработки NULL-байтов, а также скрытие слэшей в многобайтовых последовательностях.

🏃 Усечение длины пути

В Linux максимальная длина пути — 4096 символов. При превышении этого лимита ошибки могут быть проигнорированы, что позволяет создавать архивы с длинными фальшивыми путями, оставляющими вредоносные файлы.

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

🤕 Фингерпринт системы

Загрузка файлов с именами CON, NUL или <> помогает выявить Windows-системы. Также можно определить операционную систему по длине пути: 4096 символов — это Linux, 260 — Windows.

Тестирование симлинков в свою очередь помогает определить поддержку симлинков системой и проверить их на чувствительные пути.
  • 🔥 7
More from @standoff_bb_tips
  1. Oct 11, 2026Что скрывается в имени HTML-тега? Может быть, JavaScript? Gareth Heyes из PortSwigger пока…
  2. Oct 4, 2026Хочешь прокачать своего багбаунти-агента ❓ Обрати внимание на Model-Context-Protocol (MCP)…
  3. Oct 3, 2026Эксплуатация багов, связанных с ошибками в бизнес-логике 🤔 Логические баги — это когда ко…
  4. Sep 7, 2026Post #255
  5. Sep 5, 2026Мы накидали 6 разных вариантов атак для простого GET-запроса на редактирование профиля ⤵️…
  6. Aug 15, 2026Stored XSS через картинку: проверь Content-Type override 😵‍💫 Иногда загрузка изображений…
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 →