Hay un desafío de seguridad en el que tiene que ejecutar el código en el servidor para recuperar una bandera, y este código debe ejecutarse utilizando un documento XSL.
Encontré una forma de hacer que el servidor interpretara mi propio archivo XSL, y utilicé la funcionalidad php:function
para ejecutar una función php en el servidor. Aquí hay un ejemplo del código que le estoy dando al servidor:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl">
<xsl:template match="/">
<xsl:value-of select="php:function('file_get_contents','index.php')"/>
</xsl:template>
</xsl:stylesheet>
Este código generará el código fuente de la página index.php
.
El siguiente paso es ejecutar scandir
en el servidor para listar el directorio actual (para encontrar la bandera). El problema que tengo es que la respuesta del servidor es solo Array
, eso es todo lo que genera el servidor.
Después de buscar casi 8 horas, estoy atascado y no puedo encontrar ninguna funcionalidad XSL que genere la matriz devuelta por scandir
.
Notas :
- Las funciones que permiten la ejecución de código (
eval
,exec
,passthru
,popen
,proc_open
,shell_exec
,system
) están deshabilitadas por el servidor. - Realmente soy un principiante (noob completo) en los lenguajes XSL y XML.