Pruebas de penetración basadas en un CMS de centro comercial

Tabla de contenido

Pruebas de penetración NiushopCMS

Inicio del sitio

recoger mensaje

Explosión de contraseñas débiles

Vulnerabilidad de carga de archivos

Hay un punto de carga de archivos en los datos personales del centro personal

Entre los datos personales de los usuarios en segundo plano, hay un punto de carga de archivos

También hay un punto de carga de archivos en la oficina de gestión de artículos de fondo.

Vulnerabilidades de la lógica empresarial

XSS

inyección SQL


Pruebas de penetración NiushopCMS

Inicio del sitio

recoger mensaje

 Recuperar información de IP y obtener información del sitio web

 El puerto 22 se encuentra en alto riesgo

 Información del puerto de escaneo de Yujian

 Descubra la información del puerto anterior

 información de escaneo nmap

Información del puerto escaneado:

 escanear directorio

Código de estado 200:

Información adicional del directorio:

Explosión de contraseñas débiles

 Acabo de recopilar información y descubrí que el puerto 22 está abierto, existe un alto riesgo, intente voladura de contraseña débil

 La conexión falló, lo que indica que la contraseña puede no ser débil

 Intenta explotar la base de datos con contraseñas débiles

 Tampoco está desprotegido, es posible que no haya contraseñas débiles

Intenta iniciar sesión en segundo plano:

 Intente ingresar la contraseña de la cuenta, capture el paquete para la voladura 
 , puede intentar usar el administrador de la cuenta primero y seleccione el modo de francotirador para la voladura para ver si la voladura es exitosa

Capture el paquete para obtener los datos, envíelo al módulo Intruso y seleccione el modo francotirador:

Seleccione el diccionario de contraseñas y explote

 A través de la observación, de acuerdo con la longitud, haga un juicio

La contraseña es: admin123456

 Cuenta de fondo de inicio de sesión exitosa 
 : 
 contraseña de administrador: admin123456

Se pueden agregar nuevos usuarios administradores:

Vulnerabilidad de carga de archivos

Hay un punto de carga de archivos en los datos personales del centro personal

 Encuentre el punto de carga del archivo

 Intente cargar, tome el paquete para obtener la información de datos, cargue el archivo con éxito, verifique la ruta del archivo cargado

Encuentra la ruta para subir la imagen.

 Cargado con éxito, échale un vistazo

 Visite el punto de carga del archivo, se analiza la declaración php, verifique que el archivo troyano se haya creado correctamente, visite e intente ejecutar la declaración php

 Use Godzilla para conectarse y obtener con éxito los permisos del servidor

Entre los datos personales de los usuarios en segundo plano, hay un punto de carga de archivos

 Intente cargar una imagen, capture el paquete y modifique la información de los datos, inserte la instrucción php en la imagen y luego suelte el paquete para verificar que la carga se haya realizado correctamente.

 Visite la ruta de carga correspondiente para ver si se analiza

 analizado con éxito. Reemplace la instrucción php con un caballo de Troya de una oración, o use una oración de php para generar un archivo y escribirlo en el caballo de Troya.Tome el 
 ejemplo de generar un archivo con una oración de PHP y escribirlo en el caballo de Troya. El mismo principio se aplica al caballo de Troya de una frase.

Modifique el sufijo del archivo cargado, inserte la declaración de php Trojan en la imagen y colóquelo en el paquete

Cargado con éxito, verifique si se analiza

Visite el enlace de carga correspondiente

Verifique que en la oración que acabamos de insertar, el archivo troyano generado se haya generado correctamente y se pueda analizar

 Usa Ant Sword o Godzilla para conectarte

La conexión es exitosa, solo agregue

También hay un punto de carga de archivos en la oficina de gestión de artículos de fondo.


 El proceso de prueba es el mismo  que el anterior. La oración puede ser un caballo de Troya de una oración o una oración para generar un archivo y escribirlo en un caballo de Troya.

Después de acceder, ingrese la declaración php y se analizará

 Herramienta de terceros Ant Sword para conectar

conexión exitosa

Obtención de permisos de servidor con éxito:

Otros, etc. Hay más puntos de carga de archivos, puede probar este método a su vez. (Del mismo modo, la misma idea y método se pueden cargar y probar para su verificación)

Vulnerabilidades de la lógica empresarial

Compre bienes a voluntad, capture el paquete y modifique la información numérica (información de cantidad) en el paquete de datos

Capturar paquetes

Simplemente coloque el paquete, lo mismo es cierto para el siguiente paquete, cambie num a -1

Modifique dos paquetes de datos seguidos, cambie el número a -1 y luego libere el paquete (puede elegir cualquier número de número, el número es arbitrario, solo agregue un signo menos delante de la modificación)

Continúe poniendo la bolsa, y luego podrá ver, pague 0 yuanes

 Después de que se encuentre que este método se ha ejecutado, aparecerá una interfaz de inventario insuficiente. Intentamos modificar la cantidad nuevamente, cámbiala a 0.000001 y vuelve a intentarlo

Elijamos un producto al azar:

Haga clic para comprar:

Tome el paquete de datos y modifique la información del paquete de datos:

Modificar la cantidad de compra

Simplemente coloque el paquete y observe el segundo paquete nuevamente:

revisar de nuevo

Solo empácalo.

Aparece la interfaz de pago:

Pagó correctamente el pedido:

Ir al centro de miembros para ver mi pedido:

Se pueden realizar compras de 0 yuanes.

 También hay una laguna en la lógica comercial en el uso repetido de cupones. Después de enviar el pedido en la interfaz de pago, el paquete se captura para obtener el paquete de datos y el paquete de datos se envía varias veces. La devolución es una operación exitosa. Vaya a la interfaz personal para verificar el pedido, si el cupón se ha utilizado repetidamente y si se realizó correctamente.

XSS

 Donde hay interacción, puedes probar a ver si hay xss a su vez.

En el artículo gestión del sitio web en segundo plano.

Después de intentar guardar, verifique que no haya una ventana emergente.

 Obtenga una vista previa del efecto y busque la ventana emergente

Aparecerá una ventana emergente en el centro del artículo.

 Obtener información de las cookies de la misma forma

 Información de cookies obtenida con éxito

La plataforma XSS se puede utilizar para detectar información y omitir el inicio de sesión

 Inserte este código de declaración malicioso en él

Ir a visitar la interfaz creada

 La plataforma registra la información.

Ampliar para ver el contenido de la información

Información ampliada:

 Guarde la información de URL anterior y la información de cookies, y use la barra de acceso para omitir el inicio de sesión

Vuelva al primer plano, use la URL y la información de cookies ahora mismo e intente omitir el inicio de sesión

Omitido con éxito:

Omitió con éxito e ingresó a la interfaz de administración en segundo plano.

Después de ver la prueba de verificación, se encontró que:

En la configuración básica, todavía hay XSS después de la prueba

 La recepción observa los cambios en su ventana emergente

Después de la prueba, se encuentra que este tipo se almacena XSS

Saltar a otras ubicaciones también aparecerá:

Hay otros lugares interactivos, y hay lagunas de la misma manera, solo intente una y otra vez.

inyección SQL

 Después de la verificación, se encontró que había una inyección de sql en primer plano

Punto de inyección:

Capture el paquete para obtener los datos y guárdelo en el archivo txt en el directorio sqlmap

Use la herramienta sqlmap para ejecutar:

 Después de la prueba, sqlmap no puede quedarse sin la base de datos y no puede explotar la base de datos.

En la misma posición, también hay inyección de sql en el precio, etc.:

Hay un error en el punto de inyección:

Utilice la herramienta sqlmap para intentar ejecutar de nuevo:

Inyección de tipo booleano:

python sqlmap.py -r test.txt  --technique=B --batch

Ejecutó con éxito:

Agotar métodos y cargas útiles que se pueden inyectar con éxito

Tipo de inyección y carga útil:

爆数据库
 python sqlmap.py -r test.txt  --technique=B --batch --dbs

Encuentre la base de datos de nuestro sitio web correspondiente y luego explote la tabla.

A continuación, explote la tabla de datos

爆数据表
 python sqlmap.py -r test.txt  --technique=B --batch -D niushop_b2c  --tables

Después de esperar, aparece la información de la tabla de datos:

 La información de la tabla de datos en la base de datos es la siguiente, explotada con éxito

Se puede ver que la gran cantidad de tablas de datos

 A través de la observación, encontramos lo que queremos, la 
 suposición de la tabla de datos importante es que sys_user 
 explota los campos en la tabla de datos y obtiene la información de la columna

 尝试爆破
 python sqlmap.py -r test.txt  --technique=B --batch -D niushop_b2c -T sys_user_admin --columns

tabla de datos sys_user_admin:

 La información enumerada en la tabla se expuso con éxito.

Por observación, no hay información que queramos. Continúe explotando otras tablas de datos.

tabla de datos sys_users:

获取数据表当中的列的信息:
 python sqlmap.py -r test.txt  --technique=B --batch -D niushop_b2c -T sys_user --columns

Resultados como se muestra a continuación:

Se observa que hay más información de datos sensibles, usuario y contraseña

Después de obtener la información anterior, continuamos explotando la información del campo:

尝试爆破列的信息,爆破字段,获取重要的信息用户名和密码
 ​
 python sqlmap.py -r test.txt  --technique=B --batch -D niushop_b2c -T sys_user -C user_name,user_password --dump

Parte de la información de los datos:

Supongo que la contraseña de datos está encriptada por MD5, intente usar MD5 para descifrar, encuentre una al azar para probar:

Continúe esperando la información de datos de ráfaga.

 Ver más información de usuario y contraseña

Observa la información del administrador y descifrala

Obtener información de usuario y contraseña de administrador

 La voladura fue exitosa y la información de usuario y contraseña se obtuvo con éxito

 ¡La base de datos de voladura fue exitosa!

Después de la verificación, se encuentra que hay un punto de inyección de sql en segundo plano:

La interfaz de consulta en la gestión de la base de datos en el entorno.

Aparece un mensaje de error

 Capture el paquete para obtener el paquete de datos, colóquelo en el directorio de sqlmap y use sqlmap para ejecutar

datos de ejecución de sqlmap:

 Base de datos de ráfagas 
 python sqlmap.py -r test.txt --batch --dbs

Después de esperar:

La herramienta sqlmap no se puede agotar. Pero hay una inyección de SQL, puede probar otras formas de inyectar.

También hay puntos de inyección de sql en el usuario en segundo plano:

 tratar de inyectar

Después de la inyección, se informa un error:

 Tome el paquete de datos y guárdelo en el archivo de texto en el directorio de sqlmap

Use la herramienta sqlmap para ejecutar datos:

Se quedó sin la instrucción de inyección y la base de datos.

 Base de datos de ráfagas 
 python sqlmap.py -r test.txt --batch --dbs

 Determinar la base de datos actual 
 python sqlmap.py -r test.txt --batch --dbs --current-db

 Explotar la tabla de datos en la base de datos 
 python sqlmap.py -r test.txt --batch --dbs -D niushop_b2c --tables

 Encuentre las hojas de datos más importantes que necesitamos y obtenga la información en ellas

 El juicio preliminar es que esta tabla 
 explotará la información de la columna en la siguiente tabla 
 python sqlmap.py -r test.txt --batch --dbs -D niushop_b2c -T niushop_b2c --columns

 Encuentre la información sobre las columnas que más deseamos, nombre de usuario y contraseña de usuario 
 Nombre de usuario y contraseña 
 de Blast 
 python sqlmap.py -r test.txt --batch --dbs -D niushop_b2c -T sys_user -C nombre_de_usuario,contraseña_de_usuario --dump

Algunos datos de usuario:

 Al analizar la contraseña es el cifrado MD5, encuentre aleatoriamente una contraseña para decodificar

Decodificación exitosa.

 Se observó que algunas contraseñas se descodificaron después de que se agotaran los datos de sqlmap. En los paréntesis encriptados está la información decodificada.

El contenido es solo para referencia y estudio.

Si el artículo es inapropiado, ¡las críticas y correcciones son bienvenidas! 

Supongo que te gusta

Origin blog.csdn.net/rumil/article/details/131170454
Recomendado
Clasificación