Inyección SQL-2

1. ¿Por qué debemos entender este conocimiento?

2. Principio

3. Propio entendimiento y práctica

4. Caso del título del CTF





La siguiente declaración puede decir que no es muy agradable, así que por favor comente si las palabras sensibles I, el autor cambiarían


diaria Tucao: la inyección de SQL que dice es difícil, no es difícil, usted dice no es difícil, es muy difícil, inyección SQL realmente Para probar la experiencia, aprendí una nueva carga útil de inyección sql. Creo que es realmente necesario grabarla con un memo


¿Por qué debemos entender este conocimiento?

La inyección articular en realidad tiene mucho conocimiento, por lo que hoy tiene que hablar sobre ello. Es realmente incómodo mantener la inyección articular CTF. No veo mucho, pero también descubrí que hay algunos puntos comunes. 1. Las palabras clave comunes para filtrar palabras clave son: Que: 1.Unión seleccione 2.Y 3.O 4.De 5.Espacio En resumen, el código utilizado para la inyección conjunta se filtrará, por lo que a veces es necesario saber qué palabras clave no se han filtrado. Echa un vistazo a la reseña del tipo grande para copiar una tabla difusa (Baishen es realmente bueno)







Principio

La mayoría de los filtros son en realidad expresiones regulares de php, o hay una tabla de lista, pero estos son realmente miserables
preg_replace('/or/i',"",$id);//过滤or

Algunos se filtrarán como se indica
arriba. Hay muchas formas simples de evitar
1. Combinación aleatoria de tamaño y mezcla (SelECt)
2. Superposición (OorR)
3. Reemplazo equivalente y (&&) o (||)
4 .Código (si se filtra el espacio, puede usar% 0A (\ n))
5. Comentarios en línea (/ ** / espacios reemplazables)
6. Reemplazo de función equivalente (versión-> @@ versión)
7. Símbolos especiales ( +, \\, ', @)
8. ¡Agregue comentarios en línea! (/ ! union /)
9. Desbordamiento de búfer
seleccione * de los usuarios donde id = 1 y (seleccione 1) = (Seleccione 0xA 1000) uNiOn SeLeCt 1,2, versión (); // La autocomprobación es exitosa, continúe repostando
0xA
1000 se refiere detrás 0XA "a" 1000 repeticiones
tampón de configuración de software aplicación general desbordamiento requiere una longitud relativamente grande de la prueba
en el presente documento para referencia 1000, puede en algunos casos ser más cortos
10.mysql características de bypass
seleccione * de usuarios donde id = 1 union select @ test = user (), 2,3; // 1
select * de usuarios donde id = 1 union select @test: = user (), 2,3; // La autocomprobación está disponible , Continuar animando, root
select * de usuarios donde id = 1 union select @, 2,3; // NULL
11. Magia negra
Inserte la descripción de la imagen aquí
12. El espacio en blanco omite
el espacio en blanco de MySQL:% 90,% 0A,% 0B,% 0D,% 20,% 0C ,% A0, / xxx /
Caracteres en blanco normales:% 09,% 0A,% 0B,% 0D,% 20
Ejemplo-1: union% 250Cselect
Ejemplo-1: union% 25A0select
CTF se usa generalmente en el boxeo combinado

Comencemos a explicar el principio de filtrado.

1. Mayúsculas y minúsculas
Mysql tiene una función que no distingue entre mayúsculas y minúsculas, por lo que no importa cómo las mezcle, eventualmente las convertirá a minúsculas o mayúsculas
. De hecho, esto es muy problemático, por lo que la versión actualizada ahora unificará la instrucción SQL en minúsculas o mayúsculas, y luego filtrará, y luego las mayúsculas y minúsculas pueden no ser válidas
2. Superposición
porque el caso es inválido, así que considere el siguiente paso, El filtrado común es establecer la palabra clave en "", que en realidad es muy fácil de omitir, y la superposición es una de ellas. Por ejemplo, selec select t convierte automáticamente select a "" después de la función de filtro, así que selecselectt-> select, pero encontró una versión mejorada Es muy incómodo, la función de filtro puede establecer la palabra clave en otros caracteres, luego depende de la situación, de todos modos, este método puede ser inválido
3. El equivalente
se reemplaza por la misma función que el nombre sugiere, porque la mayoría de los es una lista, el pensamiento de sombrero negro, comúnmente usados prohibir palabras clave, pero descuidan algunas funciones funciones similares, como el filtrado de grupo por el orden, pero también tiene una función similar
, pero en caso de Actualizado o incómodo, con un pensamiento de sombrero blanco que sólo le permite especificar una lista de palabras clave, el seguimiento será parte de la función equivalente prostituta blanca dentro de los jefes de la lista por separado
4. codificación
de codificación es un método muy bueno para la superposición de derivación como Del mismo modo, se puede omitir una palabra clave de urlencode o hexadecimal porque se decodificará y ejecutará en mysql, pero la versión actualizada también es muy fuerte. Se puede decodificar y filtrar primero, pero puede usar la codificación n para omitir
5. Comentarios en línea Los comentarios en
línea omiten principalmente el filtrado combinado, es decir, no puede aparecer una cadena como select union, pero / ** / también se puede usar en lugar de espacios, no sé por qué mysql puede hacer esto, estoy fascinado por
/ ! Code/ A menudo omite expresiones regulares rigurosas, porque sql ejecutará el código en / ! Code /
6. desbordamiento de búfer, omisión de características de mysql, magia negra.
Estas son omisión de WAF, CTF generalmente no sale
7. Sin pasar por
el signo en blanco Esto puede ser realmente la máxima prioridad. CTF a menudo filtra los espacios para que vea cómo se inyecta, lo que sin duda es realmente agotador,
pero todavía hay muchos equivalentes
Mysql de espacios :% 90 debido a una llamada el máximo se% 8F,% 90 presentación no parece tan carácter transfronterizo que será sustituido por un espacio en blanco
% 0A,% 0B,% 0D es símbolo de escape especial, alimentación de línea, tabuladores, \ r éstos,
en huecos regulares tienen % 09,% 0A,% 0B,% 0D,
por lo que debe juzgar si se trata de una función de filtrado normal o de filtrado de php, pero aún puede utilizar sus
8. Común . Los comentarios incorporados se filtran y
pueden intentar encontrar símbolos especiales para ver si hay circunstancias especiales. Por ejemplo, preguntas como <>, +, {}, [], *, etc. deben ser desconcertantes, de lo contrario es realmente difícil















Caso del título del CTF

i Spring Autumn Web SQL

Inserte la descripción de la imagen aquí
No hay comillas simples, por lo que debe ser un número entero.
Intente ordenar por, y, o
encuentre que se filtró.
En este momento, puede reemplazarlo por equivalente.
Ordenar por-> grupo por And->
&&
Or-> ||
1. Eco, entonces el grupo no es Filtro
2. El código detrás de && desaparece, lo que indica que && se reemplaza por #
3. || No se reportó ningún error pero no es muy
útil , || 1 = 1 prueba de eco, 1 = 2 sin cambio, también puede usar superposición para juzgar si se convierte a ""
Sin embargo, descubrí que el orden de entrada mostrará el inglés del ataque de inyección, por lo que este método no está disponible aquí
. Encontré 3 columnas por grupo.
Intente la unión, seleccione y
descubra que el filtro está filtrado.
Dado que mi conocimiento es corto, pienso en otra forma.
Intente comentarios incorporados / ! / Es
difícil encontrar que está filtrado , por lo que solo puede probar símbolos especiales para ver
<>, [], {}, "
encontrado <> fue reemplazado por" ", por lo que puede llamar a <> para superponer
union s <> elect 1, 2,3
Inserte la descripción de la imagen aquí


/index.php?id=1+union+s<>elect+1,database(),3

Ver la base de datos actual como sqli

index.php?id=1+union+s<>elect+1,(sel<>ect%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()),3

Obtener información Tabla, los usuarios (han intentado tanto como sea posible, pero en frente de una información rápida)
y el nombre de la columna luego se echó
finalmente ráfaga de datos obtenidos de la bandera nombre de la columna
por último decir que tales preguntas todavía en muy buen consejo para ir a probar
las viejas reglas pueden referirse a la El reportaje del tipo grande
i Spring and Autumn WEB SQL

Publicado 6 artículos originales · me gusta 0 · visitas 116

Supongo que te gusta

Origin blog.csdn.net/a1309525802/article/details/105371015
Recomendado
Clasificación