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

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

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

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

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

Категории

Все категории
Loading categories
fastjson-tp1fn1 — сценарий на основе CVE-2022-25845, дающий TP для SCA на основе метаданных, но FN при использовании графа вызовов | Kitploit
Инструменты/GitHubGitHub/scabench/fastjson-tp1fn1
Статический анализАнализ уязвимостейАнализ КодаБезопасность Цепочки ПоставокСтатьи и ИсследованияОбучение и Образование
GitHubscabench/fastjson-tp1fn1

fastjson-tp1fn1

сценарий на основе CVE-2022-25845, дающий TP для SCA на основе метаданных, но FN при использовании графа вызовов

Репозиторий
32 лет назадЕщё не проверено

Популярное

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

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

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

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

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

json.org CVE-2022-45688 истинно-положительный и ложноположительный результат (WTF ??)

Проект содержит зависимость fastjson с уязвимостью CVE-2022-25845.

Уязвимость возникает из-за того, что данные в JSON интерпретируются как Java-бины, т.е. классы инстанцируются, а свойства устанавливаются путём выполнения методов-сеттеров. Это делается с помощью рефлексии. Если в classpath имеется класс, где сеттеры могут инициировать такое поведение, как выполнение кода (в примере это класс Trigger, соответствующий входной файл — CVE-2022-25845.json), то это можно эксплуатировать.

Интересная особенность здесь — использование рефлексии, как показано в приведённом ниже стектрейсе, полученном при запуске прилагаемого теста для демонстрации уязвимости.

root@kitploit:~
setName:11, Trigger
invoke0:-1, NativeMethodAccessorImpl (jdk.internal.reflect)
invoke:62, NativeMethodAccessorImpl (jdk.internal.reflect) [2]
invoke:43, DelegatingMethodAccessorImpl (jdk.internal.reflect)
invoke:566, Method (java.lang.reflect)
setValue:167, FieldDeserializer (com.alibaba.fastjson.parser.deserializer)
deserialze:155, ThrowableDeserializer (com.alibaba.fastjson.parser.deserializer)
parseObject:405, DefaultJSONParser (com.alibaba.fastjson.parser)
parse:1430, DefaultJSONParser (com.alibaba.fastjson.parser)
parse:1390, DefaultJSONParser (com.alibaba.fastjson.parser)
parse:181, JSON (com.alibaba.fastjson)
parse:191, JSON (com.alibaba.fastjson)
parse:147, JSON (com.alibaba.fastjson)
main:18, CheckJSON (scabench)
confirmCVE202225845:39, ConfirmVulnerabilitiesTests (scabench)

Стандартные SCA-инструменты, основанные на метаданных, без труда определяют эту уязвимость — это «обычное дело». Однако инструменты, основанные на графе вызовов, скорее всего пропустят её, поскольку построение графа вызовов, как правило, не моделирует рефлексивные вызовы. В этом смысле это одновременно и истинно-положительный, и ложноотрицательный результат — в зависимости от используемого анализа.

Обратите внимание, что существует тест, подтверждающий уязвимость; этот тест (а следовательно, и сборка с mvn test) завершается неудачей. О том, как работает тест, см. https://github.com/scabench/jsonorg-tp1.

Запуск анализа состава программного обеспечения

Имеется несколько sh-скриптов для запуска различных анализов, отчёты о результатах можно найти в scan-results.

Генерация SBOM

В pom.xml есть плагин для генерации SBOM в формате CycloneDX. Для этого выполните mvn cyclonedx:makePackageBom; SBOM можно найти в target/ в форматах json и xml.

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