El proceso de entrada de sql blanco

Sobre todo para ver la siguiente levixxxx escritura así que las cosas profundas, y luego mirar a su propio punto de sentirse bajo, no es fácil de entender, por lo que decidí. . .

En primer lugar, comprender CRUD

mesa de la biblioteca no debería tener que explicarlo.

1.Inserte en mesa de la biblioteca (columna 1, fila 2 ...) valores (valor 1, valor 2)

insert into 1.news values(3,’test’,’test’,3)

- Cadena recuerde usar comillas simples, el valor no es

. 2.select la fila 1, columna 2 de la tabla de base de datos (columna 1, columna 2 ...) - ( "*" se refiere a toda la columna)

  • Límite - Sintaxis: límite (subíndice de partida, número de artículo) sigue en general el final de la instrucción
  • seleccionar * de tablas de la base - Consulta Todos
  • SELECT ID, título de la mesa de la biblioteca - la consulta "id" y la columna "título"

3.Borrar de la tabla de biblioteca donde id = 3 -. Borrar "id = 3" que la columna

biblioteca 4.update. Tabla 1 Columna = valor de ajuste, la columna condición de valor 2 =

type = '2' donde id = 2 - el "id = 2" en el "tipo" a 2

La consulta más básica

select * from 1.news where username='admin' and password='test'

select * from 1.news where username=' ' or ' '=' ' and password='test'

select * from 1.news where username= ' ' or  1=1#' and password='test' 

- "- y # es el carácter de comentario, comentario el contenido de la parte de atrás."

  • Mientras la línea a través de la lógica, prestar atención a la paréntesis de cierre, comilla simple cerrada, prestar atención ahora - código fuente proporcionado - han cerrado en
  • una contraseña maestra 'o' a '=' a
  • datos históricos adhesivas que de otro modo no obtiene los datos pueden ser unidos en los datos: el papel de la Unión (se mencionará más adelante, el uso inteligente de la relativamente volátil)
  • ordenado por (también se menciona más adelante): la columna utilizada en la determinación de

primaria de inyección SQL

¿Qué es la inyección de SQL:

Parámetro enviada por el usuario contiene algunos caracteres en el ataque con base de datos SQL, cambiando así la semántica de los datos que desea obtener algún

  • En cualquier lugar posible inyección de SQL, como árbitro, galleta, cuerpo, URL, etc.
    [imágenes de cadenas extranjeras volcar falla, la estación de origen puede tener un mecanismo de cadena de seguridad, se recomienda guardar la imagen abajo subir directamente (img-qqDWDcKd-1585889714798) ( / Común inyección .png herramienta)]
    herramienta de inyección Common
    proceso

¿Qué tipo de inyección SQL (forma de inyección no es lo mismo que el acceso a los datos clasificados):

1. ciego: de acuerdo con la lógica de verdadero y falso para determinar

  • Principio : Por código ASCII, no admite chino, convertido a código ASCII comparando el tamaño de los caracteres tomadas función substr, determina el tamaño de la dicotomía, luego se convierte en datos de código ASCII, utilizando la función de hex Chino (el MySQL): convert chino a hexadecimal luego se convierte

2.union inyección: directamente a través de la consulta de unión para mostrar la página, tales como:

union select username from admin

3. Error de inyección de muestra: el uso de un mensaje de error de base de datos se inyecta, además se muestra un " '" mensaje de error, observe los mensajes de error o mensajes de error como - (que necesitan para inyectar un nivel muy alto, de todos modos, no puedo ...)

4. Inyección de retraso de tiempo de respuesta está determinada por la página de la función del sueño

inyección de SQL puede hacer:

1. Obtener archivo de base de datos (ABM)

2. Lectura y escritura de archivos

3. ejecutar comandos del sistema operativo

Cómo determinar si hay acceso:

Digital, carácter, forma de buscar

Una mesa muy importante, se debe tener en cuenta: INFORMATION_SCHEMA.TABLES

función existe se determina si existe una tabla:

existsselect 1 form information_schema.tables
1. numérico:
  • verdadero y lo falso es falso, verdadero o falso es verdadero

    sql=select * from news where id=1 and 1=1sql=select * from news where id=1 order by 1
  • Con el fin por el juez el número de columnas (por unos pocos es la primera de varias columnas, si la pantalla está presente, que no muestra que esta columna no existe, con el fin de determinar el uso de arriba) y luego unión, algunos programadores escribirán el orden por sí mismo, habrá xxxxxx orden por orden de situación xxxx, se mostrará un error de sintaxis y así sucesivamente, de modo que todo el tema real.

  • Algunos programas de consulta de tabla sólo los primeros datos, por lo que el frontal debe Negativos :? como id = 1 y 1 = 2

  • Algunos uso de la unión por debajo
    determinación de la posición de visualización
    Determinar la versión de la pantalla de consulta bits
    Nombre de la tabla de consulta
    Todas las consultas de bonos contraseña de cuenta de contraseña de la cuenta

2. Carácter:
sql=select * from news where type=‘ xxx ’ “

sql=select * from news where type=1and1=1’ ”

Además de antes y después de la necesidad de construir una gramática, con otro tipo digital son los mismos. (El exceso puede ser comentado 'con #)
carácter
está determinada por un número o carácter del método: el primer tipo está configurado de acuerdo con lo digital

inyección pseudo-estática:

500 404, pero no se da, el mensaje de error sql
Determinar la inyección estática
método de posición de inyección después de 1.html 1, la misma razón, determina un número o un carácter, una herramienta de inyección marcas inyección súper sql

2. Por ejemplo, el método resultó ser asd111.html, esta vez se puede tratar de asd.php constructo? Id = 111 o asd.asp? Id = 111, etc.

3. Retire método para ver si .html normales

3. Tipo de búsqueda:
  • Debe elegir un datos de palabras clave, de lo contrario no importa cómo no van a aparecer los resultados de estructura
select * from news where title like%xxxx%

- titular apareció en medio de este personaje, consultas difusas

select * from news where title like ‘ xxxx%

- comenzar con xxx, terminando con cualquier carácter

select * from news where title like%xxxx ’

- Al principio de cualquier carácter, terminando xxx
configuración cerrada
a cerca de sintaxis en sí, debido a que el medio es %% caracteres vacíos, así que todo va a abrir.
ejemplo
Debido a que es sometido por correo, por lo que puede comentar directamente #, Si en la obtención, a codificarse como URL, convertidos a% 23 #.

La contraseña universal:

select * from 1.news where username='admin'or 1=1# and password=''

Antes de aprender a mirar esta muy simple, se ve en la situación construida sobre el mismo, por lo general no conocen saben la contraseña de administrador.

  • admin' o 'a' = 'a

  • admin' o 1 = 1 # (MySQL)

  • admin' o 1 = 1- - (sqlserver)

  • admin 'o 1 = 1; - - (sqlserver) ';' declaración representa un multi-
    declaraciones relacionadas
    frontal o una condición, seguida de una condición, no puede conocer la contraseña de la cuenta.

  • Por lo general, herramienta de inyección SQL súper, paquete de solicitud de modificación, con el uso de captura.

or 1=1#(mysql)
admin' or 1=1--(sqlserver)
admin' or 1=1;--(sqlserver) #  " ; "表示多语句

Es un frente o condición, seguida de una condición, no se conoce la contraseña de la cuenta.

  • Por lo general, herramienta de inyección SQL súper, paquete de solicitud de modificación, con el uso de captura.
Publicado 13 artículos originales · ganado elogios 0 · Vistas 447

Supongo que te gusta

Origin blog.csdn.net/m0_46230316/article/details/105290735
Recomendado
Clasificación