Esiste una sfida di sicurezza in cui è necessario eseguire codice sul server per recuperare un flag e questo codice deve essere eseguito utilizzando un documento XSL.
Quindi ho trovato un modo per far interpretare al server il mio file XSL, e ho usato la funzionalità php:function per eseguire una funzione php sul server. Ecco un esempio del codice che sto dando al server:
<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>
Questo codice mostrerà il codice sorgente della pagina index.php .
Il prossimo passo è eseguire scandir sul server per elencare la directory corrente (per trovare il flag). Il problema che sto avendo è che la risposta dal server è solo Array , questo è tutto ciò che il server emette.
Dopo aver cercato per quasi 8 ore, sono bloccato e non riesco a trovare alcuna funzionalità XSL che restituisca l'array restituito da scandir .
Note:
- Le funzioni che consentono l'esecuzione del codice (
eval,exec,passthru,popen,proc_open,shell_exec,system) sono disabilitate dal server. - Sono davvero un principiante (noob completo) nei linguaggi XSL e XML.