Tabla de contenido
Pruebas de penetración NiushopCMS
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
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!