Directorio de artículos
- Conocimientos necesarios antes de la prueba
- Parte experimental
- 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.
- 2. Kali usa carne de res para generar código malicioso
- 3. Visite http: // sitio web del libro de visitas / message.asp y escriba el código malicioso
- 4. Secuestrar el navegador y configurar el sitio web secuestrado
- 5. ¿Qué tipo de ataques XSS hay en el experimento?
- Parte de inyección SQL: DVWA + SQLmap + combate de inyección Mysql
- 1. Construcción del entorno experimental
- 2. Enumere el nombre de usuario y la base de datos actualmente en uso
- 3. Enumere la base de datos actual
- 4. Enumere la base de datos y la tabla de datos de la base de datos especificada.
- 5. Obtenga la información de todas las columnas en la base de datos y la tabla especificadas
- Enumere todos los nombres de usuario y contraseñas en la tabla de datos especificada y hasta el local
- para resumir
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.
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:
Luego, siga el proceso e importe el archivo del sitio web descargado previamente, como se muestra en la figura siguiente:
Aquí debe seleccionar un puerto que no está ocupado:
haga clic en Examinar, busque el archivo correspondiente y haga clic en Aceptar:
aquí está todo lo que necesita crear para la experimentación:
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:
Entonces podemos usar para http://127.0.0.1:设置好的端口号/message.asp
abrir nuestro sitio web, aquí uso el puerto 8888, así que uso http://127.0.0.1:8888/message.asp
el sitio web para iniciar sesión:
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
Entonces podemos encontrar que hay una vulnerabilidad XSS en error.asp y add.asp:
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: ./beef
puedes comenzar
pero! ! !
Es posible que la primera vez que se le recuerde que no use la cuenta y contraseña predeterminadas, como esta:
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
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:
finalmente ingrese y :wq
presione enter, guarde y salga:
aquí configuro la contraseña y la cuenta para admin, luego de completar las operaciones anteriores, podemos ./beef
ver que nuestra puerta se ha abierto con éxito carne, y luego vamos al navegador Entrada: http://127.0.0.1:3000/ui/authentication
luego salte a la interfaz de inicio de sesión de beef e ingrese nuestra contraseña modificada:
después de iniciar sesión, visitamos el código malicioso dentro de hook.js
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:
aquí se puede ver que falta nuestro código en el comentario, lo que indica que se cargó correctamente en ello.
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:
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:
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/dvwa
para 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.
Luego seleccione el nivel bajo de dificultad en el nivel de seguridad para comenzar la prueba:
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,
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+url
para especificar el objetivo, luego lo usamos --cookie+我们抓到的cookie
para verificar nuestra identidad y finalmente lo usamos --current-db
para 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,
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-db
se 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 @%
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 --dbs
para 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.
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 --tables
listar 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
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 user
el usuario de la tabla de datos en la base de datos especificada, y luego usamos --columns
para 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
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 -C
para enumerar las columnas en la tabla de datos, y luego usamos --dump
para 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.
Luego abrimos el archivo guardado en el archivo de acuerdo con la ruta dada:
usamos el cd
comando para cambiar al directorio donde se encuentra el archivo, y luego usamos para cat file1 +文件名
abrir el archivo:
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