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.