RFI
Bajo
Volvemos a empezar y este caso vamos a inyectar un fichero remoto, como ejemplo vamos a usar google, como sabemos que carga lo que le pases por parámetros vamos a introducir la url completa y ver que sucede.
Como vemos nos carga google en nuestra web.
Medio
Cambiamos de nivel y volvemos a probar el dominio de google, dejando de funcionar
Si nos fijamos en el código nos damos cuenta de que tiene un srt_replace
como en LFI que nos impide usar http o https
// Input validation
$file = str_replace( array( "http://", "https://" ), "", $file );
Pero como str_replace
no es recursivo, podemos jugar con ello cambiando la manera de escribir el protocolo
htthttp://p://google.es
Lo que sucederá es que se eliminara el http://
dejando el que lo envuelve en su lugar, volviendo a funcionar el ataque.
Alto
En este caso no se puede resolver incluyendo una url, por lo que hay que usar otra vulnerabilidad como file upload y llamar al código desde ese fichero.