
Доказательство концепции для CVE-2021-27850, затрагивающего Apache Tapestry и приводящего к неавторизованному удаленному выполнению кода.
CVE-2021-27850 — это критическая уязвимость удаленного выполнения кода без аутентификации, обнаруженная во всех последних версиях Apache Tapestry. Загрузив файл AppModule.class, мы можем раскрыть секретный ключ HMAC, используемый для подписи всех сериализованных объектов в Apache Tapestry.
Мы столкнулись с этой CVE в ходе реальной оценки, и, насколько мне известно, в открытом доступе нет эксплойтов, описывающих, как Tapestry подписывает сериализованные объекты, поэтому мы решили опубликовать следующий PoC, который использовали после долгого изучения исходного кода Apache Tapestry x).
1- Клонируйте этот репозиторий
2- Выполните следующую команду
javac -classpath commons-codec-1.15/commons-codec-1.15.jar:. Exploit.java
3- Наконец, выполните следующее:
java -cp commons-codec-1.15/commons-codec-1.15.jar:. Exploit [Tapestry Key] [Ysoserial Payload] [Command To Execute]
Где [Tapestry Key] — это ключ HMAC, полученный из AppModule.class, [Ysoserial Payload] — это пейлоад из ysoserial, который вы хотите использовать, а [Command To Execute] — команда, которую вы хотите выполнить.

Примечание: В отличие от обычных эксплойтов Java-десериализации, где выполняемые команды ограничены (нет конвейеров или спецсимволов ..), здесь вы можете использовать любую сложную команду, так как перед выполнением команды мы добавляем следующее sh -c $@|sh . echo .
Ссылки: