![]() |
CVE-2020-2555
Уязвимости небезопасной десериализации стали популярной целью для злоумышленников/исследователей веб-приложений Java. Эти уязвимости часто приводят к удаленному выполнению кода и, как правило, их сложно исправить. В этом сообщении мы рассмотрим CVE-2020-2555 (ZDI-20-128 ), о котором сообщил ZDI Чанг из VNPT ISC. Эта критическая уязвимость (оценка CVSS 9,8) затрагивает библиотеку Oracle Coherence, которая используется в популярных продуктах, таких как Oracle WebLogic Server. Ее исправили в январе вместе с 333 другими ошибками. Изучение патча, чтобы найти source Sources - это метод Java с контролируемыми параметрами, который может быть вызван злоумышленником. В Java, Код:
readObject()Код:
readExternal()Патч для CVE-2020-2555 представил очень интересное изменение Код:
toString()Код:
LimitFilterhttps://forum.antichat.xyz/attachmen...7f64c78d20.png Все вызовы Код:
extract()Код:
toString()Код:
extract()Код:
toString()Код:
readObject()Код:
BadAttributeValueExpExceptionhttps://forum.antichat.xyz/attachmen...a52f1de0d5.png Как показано в приведенном выше коде, сериализованный экземпляр Код:
BadAttributeValueExpExceptionКод:
toString()Код:
toString()Код:
LimitFilterПримеры гаджетов, которые используются Код:
toString()Поиск sink Sinks - это вызовы методов Java, которые, как известно, имеют опасные побочные эффекты. Примеры таких побочных эффектов: - Создание произвольного файла с помощью вызова Код:
FileOutputStream.write()- Произвольное выполнение команды через вызов Код:
Runtime.exec()- Произвольный вызов метода через вызов Код:
Method.invoke()Для этой уязвимости мы фокусируемся на вызове Код:
Method.invoke()Код:
extract()Код:
Method.invoke()https://forum.antichat.xyz/attachmen...17bc9f7872.png Взгляд на Код:
ReflectionExtractorhttps://forum.antichat.xyz/attachmen...1916bfe765.png Код:
ReflectionExtractorДорога к RCE Как правило, для достижения удаленного выполнения кода требуется более одного вызова метода. Например, в популярных гаджетах Apache Commons Collections это достигается путем объединения вызовов произвольных методов с использованием ChainedTransformer. Аналогичным образом, в Coherence библиотеке есть класс, который позволяет нам связывать Код:
extract()https://forum.antichat.xyz/attachmen...2a09ed01a8.png Объединение всего этого означает, что следующая цепочка может быть использована для удаленного выполнения кода: https://forum.antichat.xyz/attachmen...c24b5282f1.png Следовательно, любой проект, использующий библиотеку, в которой вы можете доставить вредоносный сериализованный объект, может быть использован для удаленного выполнения кода. Для наших целей мы демонстрируем атаку на протокол T3 WebLogic в следующем видео: Вывод С тех пор, как Крис Фрохофф и Габриэль Лоуренс провели в AppSecCali беседу о так называемом Апокалипсисе десериализации Java в 2015 и 2016 годах, исследователи искали ошибки десериализации для выполнения кода. Мы видели много ошибок этого класса, представленных в программу и использованных во время события Pwn2Own Miami против приложений SCADA. Это также одна из причин, по которой мы обратили особое внимание на ошибки десериализации в отчете Trend Micro Security Predictions for 2020 . Еще раз спасибо Jang из VNPT ISC за сообщение об ошибке в программе, и мы надеемся увидеть больше отчетов от него в будущем. Перевод:Zero Day Initiative — CVE-2020-2555: RCE Through a Deserialization Bug in Oracle’s WebLogic Server |
| Время: 15:04 |