Penetración de Tie Zhu Xue 01: Principio de comunicación del servidor web

¡Después de todo, el piso estará mal orientado para los menores, y la libertad será caótica para el resto de su vida, tarde o temprano!

Hola a todos, mi nombre es Wang Tiezhu. Un pequeño objetivo, quiero ser un excelente ingeniero de pruebas de penetración. A partir de hoy, actualizaré algunos de mis conocimientos sobre pruebas de penetración web desde cero, ¡espero jugar un papel positivo para todos!

Inserte la descripción de la imagen aquí
¡Déjame comenzar a aprender a penetrar el primer capítulo!
Principio de comunicación del servidor web En
primer lugar, tenemos que entender qué es un servidor.

"Un servidor, también conocido como servidor, es un dispositivo que proporciona servicios informáticos. Dado que el servidor debe responder a las solicitudes de servicio y procesarlas, en general, el servidor debe tener la capacidad de emprender servicios y garantizar servicios. La composición del servidor incluye un procesador, disco duro, Memoria, bus del sistema, etc. "

Ver este concepto no es una cara,
Inserte la descripción de la imagen aquí
de hecho , para decirlo simplemente, el servidor es una computadora que está encendida las 24 horas. Cuando visita Baidu, está interactuando con el servidor de Baidu.
Los servidores principales actuales son todos los sistemas Linux (como centOS, Debin, Ubantu). Tiene muchas ventajas:

  • El tamaño pequeño, como el sistema de Windows, necesita aproximadamente 2 GB para funcionar sin problemas, Linux solo necesita 256 MB, puede funcionar sin problemas, lo que ahorra en gran medida los recursos del sistema. (¿Es correcto mirarlo!)
  • Código abierto El código fuente abierto es la característica más útil de Linux. Algunas personas dicen que es la mejor plataforma de aprendizaje. Se puede ver la mayor parte del código fuente y es útil aprender lenguajes de programación. Al mismo tiempo, el código fuente abierto también ayuda a las personas en la industria informática a desarrollar software en profundidad.
  • Gratis, a diferencia del sistema Windows, el sistema Linux en el mercado es gratuito (se establece el teorema más fragante de Baichen).
    Entonces, cuando vemos un sistema operativo, ¿cómo debemos distinguir entre Linux y Windows?

La operación más simple y más simple es ver la ruta absoluta y si hay una letra de unidad.
Dar una castaña:
Windows: C: \ Usuarios \ TUA.
linux: / home / wangtiezhu /.
Verá que con la unidad c, debe ser Windows, de lo contrario, Linux.
Distingamos un concepto: ruta absoluta y ruta relativa (útil en el futuro)
* ruta absoluta: * ruta a partir de la letra de unidad, esta es una ruta completa
Ejemplo: C: \ Users \ TUA \ Roaming
* ruta relativa: * relativa al proyecto Ruta del directorio, esta es una ruta conveniente.
Por ejemplo: cuando está en el directorio Roaming, hay un archivo .txt en este directorio, luego a.txt es equivalente a una ruta relativa.
Inserte la descripción de la imagen aquí
IP (Dirección de Protocolo de Internet) : Formato: xxxx (0 <= x <= 255) Es la dirección de la computadora, otros pueden encontrar su computadora en función de ella. Es similar a la dirección postal que completa durante las compras en la vida diaria.
* Hay dos tipos de direcciones de red.

  • Red pública: es asignada por el operador y Baidu puede consultarla mediante una consulta de dirección IP. Es equivalente a xx street xxx en xx city, xx city y xx province en la vida. (Te cuento dos pequeños secretos
    Baidu IP 14.215.177.39 Alibaba Cloud: 114.114.114.114)
  • Subred: lo asigna un enrutador y solo se puede acceder desde la misma intranet. Equivalente al número de casa en un hotel. (Por qué solo se puede acceder a la misma intranet. Se puede entender que la subred es la casa número 401 de un hotel. Solo le dice que alguien más no puede encontrarlo en 401.) La subred tiene un cierto rango de
    10.0.0.0– 10.255.255.255
    172.16.0.0–172.31.255.255
    192.168.0.0–192.168.255.255.
    ¿Qué es el protocolo DNS?

DNS es un protocolo de capa de aplicación. La función del Sistema de nombres de dominio (DNS) es convertir nombres de dominio legibles por humanos (por ejemplo, www.example.com) en direcciones IP legibles por máquina (por ejemplo, 192.0.2.44). El protocolo DNS se basa en el protocolo UDP o TCP y utiliza el puerto 53 de forma predeterminada. El cliente se comunica a través del protocolo UDP de forma predeterminada, pero dado que no es adecuado para transmitir paquetes UDP grandes en la WAN, se estipula que cuando la longitud del paquete excede los 512 bytes, debe convertirse para usar el protocolo TCP para la transmisión de datos.

En pocas palabras: el protocolo DNS es un oficial de traducción, que es responsable de convertir el nombre de dominio www.baidui.com en una dirección IP de 14.215.177.39 y transmitirlo al servidor para su consulta.
¿Qué es un nombre de dominio?

Un nombre de dominio (inglés: Nombre de dominio), también conocido como nombre de dominio, es el nombre de una computadora o grupo de computadoras en Internet que consiste en una serie de nombres separados por puntos. Se utiliza para ubicar una computadora durante la transmisión de datos (a veces también Se refiere a la ubicación geográfica).

www.baidui.com es un nombre de dominio. El nombre de dominio depende de la dirección IP a través del protocolo DNS. El propósito es facilitar que los usuarios lo recuerden y lo usen.
Los nombres de dominio se dividen en tres niveles: nombres de dominio de primer nivel, nombres de dominio de segundo nivel y nombres de dominio de tercer nivel.
Hay algunos puntos que son varios niveles de nombres de dominio, como baidu.com es un nombre de dominio de primer nivel. Cuanto más corto sea el nombre de dominio, mejor será la memoria, por lo que se debe comprar el nombre de dominio de primer nivel. (¡Dios mío, es demasiado rentable!)
¿Qué es un puerto?

"Puerto" es una traducción gratuita del puerto en inglés, que puede considerarse como una salida para la comunicación entre el dispositivo y el mundo exterior. Los puertos se pueden dividir en puertos virtuales y puertos físicos, donde los puertos virtuales se refieren a puertos dentro de una computadora o dentro de un enrutador de conmutador y no son visibles. Por ejemplo, puerto 80, puerto 21, puerto 23, etc. en una computadora.

Podemos entender el puerto como una puerta. Cuando visitas a alguien más, ¿primero debes tocar la puerta? Lo mismo es cierto para la computadora. Cuando visitas el sitio web de alguien, tienes que pasar por su puerto.

Si compara la dirección IP con una casa, el puerto es la puerta hacia y desde esta casa. La casa real tiene solo unas pocas puertas, ¡pero puede haber hasta 65536 (es decir, 2 ^ 16) puertos para una dirección IP! Los puertos están marcados por números de puerto, que son solo enteros y varían de 0 a 65535 (2 ^ 16-1). -1 aquí es porque 0 es un puerto reservado y generalmente no se usa.
Inserte la descripción de la imagen aquí
Podemos usar cmd netstat -an para poder ver el puerto local.
El puerto de la computadora está fijo de manera predeterminada, y los diferentes servicios corresponden a diferentes puertos.
Puertos importantes: 3389, 445, 3306, 1433,
80 , 443 80: ejecutan principalmente el protocolo http.
443: ejecute principalmente el protocolo https.
¿Qué es el protocolo http?

El protocolo Http es el protocolo de transferencia de hipertexto HTTP. Define cómo el navegador (es decir, el proceso del cliente web) solicita al servidor de la World Wide Web el documento de la World Wide Web y cómo el servidor transmite el documento al navegador. Desde un punto de vista jerárquico, HTTP es un protocolo de capa de aplicación orientado a transacciones. Es una base importante para el intercambio confiable de archivos (incluidos varios archivos multimedia como texto, sonido e imágenes) en la World Wide Web. Y estipula las reglas de comunicación entre el navegador del cliente y el servidor en detalle.

Características principales
1. Simple y rápido: cuando un cliente solicita un servicio de un servidor, solo se necesita transmitir el método de solicitud y la ruta. Los métodos de solicitud comunes incluyen GET, HEAD y POST. Cada método especifica un tipo diferente de contacto cliente-servidor. Debido a que el protocolo HTTP es simple, el tamaño del programa del servidor HTTP es pequeño, por lo que la velocidad de comunicación es rápida.

2. Flexible: HTTP permite la transmisión de cualquier tipo de objeto de datos. El tipo que se transmite está marcado por Content-Type.

3. Sin conexión: el significado de sin conexión es limitar el procesamiento de una sola solicitud por conexión. Después de que el servidor procesa la solicitud del cliente y recibe la respuesta del cliente, se desconecta. El uso de este método puede ahorrar tiempo de transmisión.

4. Sin estado: el protocolo HTTP es un protocolo sin estado. Sin estado significa que el protocolo no tiene memoria para el procesamiento de transacciones. La falta de estado significa que si el procesamiento posterior requiere la información previa, debe ser retransmitida, lo que puede resultar en un aumento en la cantidad de datos transferidos por conexión. Por otro lado, cuando el servidor no necesita información previa, su respuesta es más rápida.
5. Soporta modos B / S y C / S.
Inserte la descripción de la imagen aquí
Este es un paquete de protocolo http:

GET /wxisme HTTP/1.1  
Host: www.cnblogs.com 
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; zh-CN; rv:1.8.1) Gecko/20061010 Firefox/2.0  

Obtener : Podemos ver directamente cuáles son los datos del parámetro. ¿Aparecerá en la barra de direcciones? En la parte posterior, es equivalente a cuando vamos de compras al supermercado.
post : es un encabezado de solicitud similar a get. Es equivalente a ir al supermercado a comprar. El vendedor le dio una bolsa de plástico negra, es decir, los datos de transmisión de parámetros se han vuelto más y no se mostrarán en la barra de direcciones.
host : es el nombre de dominio que visitamos.
User-Aget: el parámetro es decirles a los demás cuál es su navegador y qué sistema está utilizando.
Inserte la descripción de la imagen aquí
Miremos el navegador web desde la perspectiva de los visitantes:

  1. El usuario accede al navegador para ingresar el protocolo: // nombre de dominio, como: http://www.vmware.co
  2. El navegador del usuario consulta al servidor DNS la dirección IP correspondiente al nombre de dominio a través de Sistema->.
  3. El navegador del usuario inicia una solicitud HTTP al servidor web utilizando la dirección IP consultada.
  4. El servidor analiza las solicitudes de los usuarios, extrae datos de ellas y devuelve una respuesta HTTP después del procesamiento.
  5. Después de recibir la respuesta, el navegador extrae el estado, el código de protocolo y la información efectiva del texto, y luego lo traduce a una interfaz gráfica que los humanos pueden entender y mostrar de manera intuitiva.

¿Qué es un servidor DNS?

El servidor DNS es la abreviatura de Sistema de nombres de dominio o Servicio de nombres de dominio, y se refiere al sistema de nombres de dominio de la computadora, que se compone principalmente de dos partes, una es un resolutor y la otra es un servidor de nombres de dominio. La función principal del servidor DNS es convertir la dirección del nombre de dominio en una red que pueda identificar la dirección IP de la persona, y luego puede realizar la comunicación de red, es decir, puede acceder a este sitio web.

Es equivalente a un intermediario (pero este intermediario no cobra la diferencia).
Inserte la descripción de la imagen aquí

Lo escribí aquí hoy y lo actualizaré en el futuro. Es posible que tenga errores debido a mis propias limitaciones. Espero que me critiquen y corrijan.

Publicado 16 artículos originales · elogiado 3 · visitas 419

Supongo que te gusta

Origin blog.csdn.net/qq_23321269/article/details/105578146
Recomendado
Clasificación