Данный проект предназначен исключительно для исследований в области безопасности. Запрещается использовать его для проведения незаконных атак; ответственность за последствия несёт пользователь
Это личный проект для воспроизведения и публикации некоторых интересных или достаточно серьёзных уязвимостей. В нём мало технической сложности, это скорее личные технические заметки.
fastjson
В этом модуле в основном собраны некоторые gadget'ы для эксплуатации fastjson, хотя многие из них не задокументированы.
Связанные с RCE
package:com.threedr3am.bug.fastjson.rce
- com.threedr3am.bug.fastjson.rce.FastjsonSerialize(TemplatesImpl) Условия эксплуатации: fastjson <= 1.2.24 + Feature.SupportNonPublicField
- com.threedr3am.bug.fastjson.rce.NoNeedAutoTypePoc Условия эксплуатации: fastjson < 1.2.48, не требует никакой конфигурации, работает с настройками по умолчанию для RCE
- com.threedr3am.bug.fastjson.rce.HikariConfigPoc(HikariConfig) Условия эксплуатации: fastjson <= 1.2.59 RCE, требуется включить AutoType
- com.threedr3am.bug.fastjson.rce.CommonsProxyPoc(SessionBeanProvider) Условия эксплуатации: fastjson <= 1.2.61 RCE, требуется включить AutoType
- com.threedr3am.bug.fastjson.rce.JndiConverterPoc(JndiConverter) Условия эксплуатации: fastjson <= 1.2.62 RCE, требуется включить AutoType
- com.threedr3am.bug.fastjson.rce.HadoopHikariPoc(HikariConfig) Условия эксплуатации: fastjson <= 1.2.62 RCE, требуется включить AutoType
- com.threedr3am.bug.fastjson.rce.IbatisSqlmapPoc(JtaTransactionConfig) Условия эксплуатации: fastjson <= 1.2.62 RCE, требуется включить AutoType
- com.threedr3am.bug.fastjson.rce.ShiroPoc(shiro-core) Условия эксплуатации: fastjson <= 1.2.66 RCE, требуется включить AutoType
...и некоторые другие опущены
Связанные с SSRF
package:com.threedr3am.bug.fastjson.ssrf
- com.threedr3am.bug.fastjson.ssrf.ApacheCxfSSRFPoc(WadlGenerator) Условия эксплуатации: fastjson <= 1.2.66 SSRF, требуется включить AutoType
- com.threedr3am.bug.fastjson.ssrf.ApacheCxfSSRFPoc2(SchemaHandler) Условия эксплуатации: fastjson <= 1.2.66 SSRF, требуется включить AutoType
- com.threedr3am.bug.fastjson.ssrf.CommonsJellySSRFPoc(Embedded) Условия эксплуатации: fastjson <= 1.2.66 SSRF, требуется включить AutoType
- com.threedr3am.bug.fastjson.ssrf.JREJeditorPaneSSRFPoc(JEditorPane) Условия эксплуатации: fastjson <= 1.2.66 SSRF, требуется включить AutoType
...и некоторые другие опущены
Связанные с разрешением DNS-имён
package:com.threedr3am.bug.fastjson.dns
Связанные с DoS-атаками (отказ в обслуживании)
package:com.threedr3am.bug.fastjson.dos
Связанные с утечкой информации
package:com.threedr3am.bug.fastjson.leak
jackson
Связанные с RCE
package:com.threedr3am.bug.jackson.rce
- com.threedr3am.bug.jackson.rce.AnterosPoc
- com.threedr3am.bug.jackson.rce.EhcacheJndi
- com.threedr3am.bug.jackson.rce.H2Rce
- com.threedr3am.bug.jackson.rce.HadoopHikariConfigPoc
- com.threedr3am.bug.jackson.rce.HikariConfigPoc
- com.threedr3am.bug.jackson.rce.IbatisSqlmapPoc
- com.threedr3am.bug.jackson.rce.JndiConverterPoc
- com.threedr3am.bug.jackson.rce.LogbackJndi
...и некоторые другие опущены
SSRF
package:com.threedr3am.bug.jackson.ssrf
...и некоторые другие опущены
dubbo
В этом модуле в основном собраны записи об эксплуатации уязвимостей dubbo, усилении безопасности и т.д.
- com.threedr3am.bug.dubbo.RomePoc Условия эксплуатации: наличие зависимости rome
- com.threedr3am.bug.dubbo.ResinPoc Условия эксплуатации: наличие зависимости com.caucho:quercus
- com.threedr3am.bug.dubbo.XBeanPoc Условия эксплуатации: наличие зависимости org.apache.xbean:xbean-naming
- com.threedr3am.bug.dubbo.SpringAbstractBeanFactoryPointcutAdvisorPoc Условия эксплуатации: наличие зависимости org.springframework:spring-aop
dubbo-hessian2-safe-reinforcement
Демонстрация усиления безопасности dubbo hessian2, использующая чёрный список для запрета некоторых gadget'ов
padding-oracle-cbc
Некоторые экспериментальные коды для реализации атаки padding-oracle-cbc на Java
- com.threedr3am.bug.paddingoraclecbc.PaddingOracle
реализация padding oracle на Java (реализация для нескольких групп шифротекста)
- com.threedr3am.bug.paddingoraclecbc.PaddingOracleCBC
реализация padding oracle cbc на Java (реализация для одной группы <= 16 байт шифротекста)
- com.threedr3am.bug.paddingoraclecbc.PaddingOracleCBC2
реализация padding oracle cbc на Java (реализация для нескольких групп шифротекста)
- com.threedr3am.bug.paddingoraclecbc.PaddingOracleCBCForShiro
реализация padding oracle cbc для shiro на Java
xxe
Воспроизведение XXE, вызванного различными компонентами парсинга XML, а также записи кода их исправления
commons-collections
То, что я писал несколько лет назад, когда изучал десериализацию
security-manager
Некоторые экспериментальные коды для обхода java security manager
rmi
Сервисы, связанные с rmi, а также их эксплуатация и т.д.
tomcat
Уязвимости, связанные с tomcat
ajp-bug
Уязвимости, связанные с протоколом ajp в tomcat
- com.threedr3am.bug.tomcat.ajp Произвольное чтение файлов и RCE через рендеринг jsp CVE-2020-1938
cas
Уязвимости, связанные с cas
- cas-4.1.x~4.1.6 Уязвимость десериализации (с использованием ключа по умолчанию)
- cas-4.1.7~4.2.x Уязвимость десериализации (требуется знание ключа шифрования и ключа подписи)
spring
Записи экспериментальных кодов для воспроизведения некоторых уязвимостей Spring
- spring-actuator(jolokia、snake-yaml、h2-hikariCP、eureka)
- spring-cloud-config-server(CVE-2019-3799)
- spring-cloud-config-server(CVE-2020-5405)
- spring-cloud-config-server(CVE-2020-5410)
- spring-session-data-redis RCE
apache-poi
Записи, связанные с уязвимостями парсинга excel в apache-poi
feature
Некоторые характеристики данных атак. Изначально идея была в том, чтобы посмотреть, смогут ли регулярные выражения и т.п. всё это обнаружить
java-compile
Коды реализации динамической компиляции Java и манипуляции байт-кодом
nexus
Записи воспроизведения некоторых уязвимостей RCE и обхода аутентификации (Auth Bypass) в maven nexus
ShardingSphere-UI
Записи некоторых уязвимостей ShardingSphere-UI
- CVE-2020-1947 (уязвимость RCE через десериализацию YAML)
shiro
Записи недавно обнаруженных уязвимостей обхода аутентификации в shiro
- обход shiro <= 1.4.1
- обход shiro <= 1.5.2 (CVE-2020-1957)
- обход shiro <= 1.5.3 (CVE-2020-11989)