Suspiro. Aquí está el razonamiento para que yo publique un enlace en lugar de una respuesta larga. La publicación original quiere inyectar / desafectar / explotar a través de la variable lang en la cookie:
GET /en-us HTTP/1.1
Cookie: xxx=eng.php/../../../anotherfile
Luego dice que lo intentó y falló:
ErrorException:
include_once(/export/htdocs/xxxx.com/base/languages/content-eng.php/../../../anotherfile.php): failed to open stream: No such file or directory
"No hay tal archivo o directorio" para mí significa una de algunas cosas:
1) Su recorrido del directorio está desactivado:
/export/htdocs/xxxx.com/base/languages/content-eng.php
/export/htdocs/xxxx.com/base/languages/**option1/option2/option3**/anotherfile.php
Si la estructura es exactamente igual a la anterior, no hay un período de vulnerabilidad de cruce de directorios.
2) eng.php no está lo suficientemente detallado para saber qué hace. Este tendría que ser el eslabón débil vulnerable en la cadena
Está confiando en un error, pensando: "Bueno, tengo un error, me dirijo al camino correcto"
OP: Podrías jugar un poco más con los directorios. Le dice que "no puedo encontrar este archivo", el problema se convierte en "¿qué está encontrando"? Si declara que tiene acceso a la máquina, la solución que usaría sería colocar fichas en las carpetas para determinar dónde está aterrizando :
/export/htdocs/xxxx.com/base/languages/**option1**/token1
/export/htdocs/xxxx.com/base/languages/**option1/option2**/token2
/export/htdocs/xxxx.com/base/languages/**option1/option2/option3**/token3
Luego pruebe con otro POST / GET tal vez:
Cookie: xxx=eng.php/token1
Cookie: xxx=eng.php/token2
Cookie: xxx=eng.php/token3
Cookie: xxx=eng.php/../token1
Cookie: xxx=eng.php/../token2
Cookie: xxx=eng.php/../token3
Cookie: xxx=eng.php/../../token1
Cookie: xxx=eng.php/../../token2
Cookie: xxx=eng.php/../../token3
El hecho de que haya recibido un error no significa que esté presente el recorrido del directorio. Por lo que usted sabe, es un error global que está recibiendo. El enlace inicial que envié fue para guiarlo en un idioma conocido (variable que usted controla).
EDICIÓN PARA RESTRICCIONES DE ESPACIO:
OP: " La base es /export/htdocs/yyy.com/base/. El otro archivo.php está en /export/htdocs/xxx.com/anotherfile.php"
A menos que esté malinterpretando esto:
/ export / htdocs / yyy.com / base /
/ export / htdocs / xxx.com /anotherfile.php
¿Están estos en sitios separados? Si xxx.com es su propio servidor / máquina de prueba, tengo la impresión de que está intentando explotar un LFI:
you --> modify cookie (hey, take this anotherfile.php from my machine) --> yyy.com
Nuevamente, el razonamiento de mi publicación inicial de un enlace en lugar de una respuesta. Si te referías al revés (error tipográfico):
/ export / htdocs / yyy.com / base /
/ export / htdocs / yyy .com / anotherfile.php
Luego necesitas modificar tu inserción a ../../anotherfile o mover otro archivo a:
/ export / htdocs / yyy.com / base /