Académique Documents
Professionnel Documents
Culture Documents
09 Attaque Web
09 Attaque Web
IT Talents School
Les attaques WEB
• Exemples:
• MySQL: SELECT * from table WHERE id = 1 union select 1,2,3
• PostgreSQL: SELECT * from table WHERE id = 1; select 1,2,3
• Oracle: SELECT * from table WHERE id = 1 union select null, null,null from sys.dual
Formation PIRATAGE ETHIQUE 49
Injection SQL: Définition
• Une injection SQL est l'exploitation du mauvais contrôle
des données de l’utilisateur par une application Web
interagissant avec une base de données, en injectant une
requête SQL non prévue par le système pour obtenir un
résultat qui n’était pas prévu, au début, par le
programmeur et pouvant compromettre sa sécurité.
+--------------+------------+--------------
Formation PIRATAGE ETHIQUE 66
Injections SQL Simple:
Nom des tables et champs
• Pour le nom des champs:
– Dans MS SQL:
SELECT TOP 1 COLUMN_NAME FROM
INFORMATION_SCHEMA.COLUMNS
1) WHERE TABLE_NAME='admin_login‘ -- return: login_id
2) WHERE COLUMN_NAME NOT IN ('login_id') -- return: login_name
– Dans MySQL (< 5.0) ou autres BD, il va falloir essayer de deviner.
• Si on a de la chance on peut faire un * à la place du nom des champs :
select id from text union select * from utilisateurs
• Dans cet exemple, la table utilisateurs ne doit contenir qu'une colonne.
Validator.ValidationExpression =
"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";
Scénario:
Vol des Cookies des utilisateurs
VIRTUALFORGE
Scénario:
Enchère
VIRTUALFORGE
• Le Hacker peut:
– Naviguer sur le disque logique où est installé IIS
– Exécuter du code présent sur le serveur
Formation PIRATAGE ETHIQUE 135
Manipulation d'URL:
Traversement de répertoires
• Sur les serveurs vulnérables, il suffit de remonter le
chemin avec plusieurs chaînes du type « ../ » :
http://cible/../../../../repertoire/fichier
• Des attaques plus évoluées consistent à encoder certains
caractères :
– soit sous la forme d'encodage d'URL :
http://cible/..%2F..%2F..%2Frepertoire/fichier
– soit avec une notation Unicode: Mauvaise prise en charge de
l’Unicode dans IIS 5 (bug IIS Unicode)
On peut envoyer une requête avec le \ codé en Unicode
http://cible/..%u2216..%u2216repertoire/fichier