Instructor: en
esta conferencia, me gustaría mostrarle cómo podemos usar inyecciones SQL
para leer cualquier archivo en el servidor,
por lo que incluso si el archivo existe fuera de
la raíz www, podremos leerlo
exactamente como una divulgación de archivo vulnerabilidad
y también veremos cómo podemos usarlo
para escribir archivos y subirlos al sistema al
igual que una vulnerabilidad de carga de archivos.
Entonces, lo primero que vamos a echar un
vistazo es leer el archivo.
Y voy a configurar todo a nulo aquí.
Así que tengo mi declaración aquí
y voy a configurar seleccionar uno, y voy
a dejar el
número dos porque voy a hacer cosas al respecto.
Y haremos otros tres nulos aquí.
Tan
nulo, nulo, nulo.
Entonces tenemos seleccionar nulo algo nulo, nulo, nulo.
Entonces cinco porque tenemos cinco registros
cuando hicimos el pedido.
Y en lugar de seleccionar algo, recuerde,
en el tercer
video, seleccionamos la base de datos, por ejemplo, y nos
muestra la base de datos actual.
Lo que
quiero hacer ahora es hacer otra función
y esa función se llama load_file.
Y aquí, voy a configurar el archivo
que quiero cargar y voy a usar
el mismo
archivo que teníamos en la vulnerabilidad
de inclusión de archivos y fue etc / passwd.
Por lo tanto, estamos tratando
de leer ese archivo y nuestra declaración es la unión, seleccione ese archivo y listo.
Entonces voy a copiar esto.
Y voy a
inyectarlo aquí y agregaré mi%
23, que es mi comando.
Y como puede
ver, logramos leer toda la información, todo
el contenido de etc / passwd a pesar de que
no está en la raíz web.
Por lo tanto, se almacena en etc / passwd.
Así que podemos leer cualquier cosa en el
servidor desde otros sitios
web, desde otros archivos en cualquier parte
del servidor,
podemos leerlo especificando la ruta completa de ese archivo.
Lo siguiente que me
gustaría mostrarte es escribir en el servidor.
Así que en realidad vamos a
escribir cosas en el servidor
y esto es muy útil porque podrías escribir el código que
desees, por ejemplo, puedes escribir el código para un script PHP,
puedes escribir un código de un shell, un virus o un
código PHP para obtener otras conexiones con usted.
Por lo tanto, básicamente
solo actuará como una vulnerabilidad de carga de archivos.
Y para
hacer eso, voy a escribir el
código que quiero hacer
aquí y lo llamaré, por ejemplo, solo ejemplo.
Y vamos a usar una función llamada outfile, así que
lo haremos en outfile
y luego especificaremos
dónde queremos almacenar ese archivo.
Ahora, en el mejor de los
casos, podría escribir en su raíz web y
eso significará que puede acceder al archivo a
través del navegador y ejecutarlo, para
que pueda cargar un archivo Weevely y luego conectarse
a él
y hacer cosas como eso.
Así que tratemos de hacer eso primero.
Así que lo haremos en var / www y esa es nuestra
raíz web para que podamos acceder a
las cosas
a través de él o puede ponerlo incluso var /
www y luego poner mutillidae
después para almacenarlo allí.
Entonces el comando es muy simple.
De nuevo unión selectiva.
Asegúrese de configurar todo como
nulo para que no se escriba nada en el
archivo, excepto lo
que haya puesto aquí y pongo
un ejemplo de ejemplo y se almacenará
en nuestro archivo en var / www /
mutillidae y recupere ese ejemplo. TXT.
Intentemos ejecutar esto y ver si funciona.
Ahora, esto no funcionó.
Y si
vienes aquí, verás que SQL o MySQL no
pueden crear o escribir en este directorio.
Entonces, el problema es que
no tenemos, los permisos
que tenemos no nos permiten escribir en esta ubicación en particular.
Entonces, solo para probar este
exploit, voy a cambiar esta ubicación a tmp, que es la
temperatura, y
verás que realmente puedes escribirle a la temperatura, así
que en la vida real en
escenarios, depende, puedes probarlo y ver si
puedes escribir cosas o no.
En esto, estamos tratando de escribir
en temp
ahora y si
leemos en temp, si borramos eso y luego ls y
/ tmp verás que tenemos
algo llamado ejemplo y si
intentas leer eso, verás ver que contiene,
obviamente
contiene el contenido de lo que
hicimos antes, que era la selección normal que verías.
Entonces, lo que ves para poner las cosas para el administrador y luego nos
mostró lo que hay allí, que es
un ejemplo de ejemplo que
es lo que queríamos escribir en el archivo.
Ahora, obviamente, puede deshacerse del administrador
y las cosas
de adminpass simplemente colocando un
nombre de usuario incorrecto y no se
mostrará nada aquí, así que lo único que
verá es la salida, que es un ejemplo de ejemplo.
Pero, de nuevo, esto solo es
útil si puede escribir en su servidor web, para
que pueda acceder a él
y luego usar
su shell o su carga útil y explotar aún más el sistema.