Laboratoire sécurité : audit de code PHP - PHP Quebec 2009

Audit Sécurité

vendredi 6 mars 2009

1

Ordre du jour
• • •
Présentation de l’atelier Audit boîte noire Audit à code ouvert

vendredi 6 mars 2009

2

Qui parle?
• • • •
Philippe Gamache Parler haut, interagir librement : audit de sécurité, formations Caviste de cidres de glace info@ph-il.ca

vendredi 6 mars 2009

3

Qui parle?
• •
Damien Seguy Alter Way Consulting : services experts en logiciels libres Editeur de calendriers damien.seguy@alterway.fr

• •

vendredi 6 mars 2009

4

Livre sécurité
• •
Nouvelle édition 2009 Bilan complet de la sécurité : système, MySQL, PHP, etc Edité chez Eyrolles Dédicaces sur demande

• •

vendredi 6 mars 2009

5

Cligraph CRM
• • • • • •
vendredi 6 mars 2009

CRM/GRC Open Source Version 0.991 Activement développé Soutenu par Cogivea http://www.cogivea.com/ Léger, rapide et puissant http://www.cligraphcrm.com/

6

Cligraph CRM
• • • • •
Technologies PHP et MySQL, Javascript Code développé depuis 5 ans 4970 fichiers 1200 fichiers PHP 320 000 lignes de code

vendredi 6 mars 2009

7

L’atelier sécurité
• • • •
Réveillez-vous : vous avez du travail! Analyse des logs et identification des problèmes Discussion des stratégies de protection et contextes http://192.168.3.73/ de démonstration

vendredi 6 mars 2009

8

Tests boîte noire

9
vendredi 6 mars 2009 9

Tests boîte noire

Recherche d’informations

Trouver de l’information sur l’application

• •

Que puis-je faire sur cette application? Où sont les points d'entrée les plus populaires?
10

vendredi 6 mars 2009

10

Tests boîte noire

Trouver des vulnérabilités

Trouver les trous dans l’application

• • • • •

Scanneurs automatiques À la main Fuzzing Scénarios

Comment puis-je l'utiliser à mon avantage?
11

vendredi 6 mars 2009

11

Tests boîte noire

Attaquer

Attaquer une vulnérabilité avec un but précis

12
vendredi 6 mars 2009 12

Recherche d’informations

Moteurs de recherches

Facebook, LinkedIn, Joboom, Monster

• •

Langage de programmation Logiciels utilisés

13
vendredi 6 mars 2009 13

Recherche d’informations

Moteurs de recherches (suite)

Google : phpinfo, "Zend engine”, site:nomsite.com

Divulgation de renseignements

<b>Notice</b>: undefined </b> on line <b> <b>Warning</b>: </b> on line <b>

14
vendredi 6 mars 2009 14

Recherche d’informations

Moteurs de recherches (suite)

• •

Krugle : echo $_GET

Bases de données de vulnérabilités

• • • •

BUGTRAQ CERT CVE Milw0rm
15

vendredi 6 mars 2009

15

Recherche d’informations

Google codesearch :

• • •

XSS
lang:php (echo|print).*\$_(GET|POST|COOKIE| REQUEST)

Injection SQL
lang:php query\(.*\$_(GET|POST|COOKIE| REQUEST).*\)

Injection de code
lang:php (include|include_once| require| require_once).*\$_(GET| POST|COOKIE|REQUEST)

16
vendredi 6 mars 2009 16

Recherche d’informations

Google codesearch :

• •

Injection d'en-tête HTTP
lang:php header\s*\(.*\$_(SERVER| GET|POST| COOKIE|REQUEST).*\)

Fixation de session
lang:php session_start\(\) lang:php session_regenerate_id\(\)

17
vendredi 6 mars 2009 17

Recherche d’informations

Google codesearch :

Affichage arbitraire de fichiers
lang:php (fopen|readfile|file_get_contents)\s*\ (.*\$(_GET|_POST|HTTP_GET_VARS| HTTP_POST_VARS).*\)

18
vendredi 6 mars 2009 18

Recherche d’informations

Google codesearch :

Mots de passes

filetype:sql INSERT intitle:"phpinfo()" +".default_password" +"Zend Scripting Language Engine" lang:php _connect\s*\(.*,.*,("|').*("|').*\) lang:php "VBULLETIN IS NOT FREE SOFTWARE" lang:php "XCART_SESSION_START" lang:php \$pass\w+\s*=\s*('|")\w+('|");

19
vendredi 6 mars 2009 19

Recherche d’informations
• •
robots.txt Alias Apache

• •

/icons/

Signatures dans les en têtes

• •

curl, wget, Firefox, Rex Swain's HTTP Viewer

.phps
20

vendredi 6 mars 2009

20

Recherche d’informations
• • •
https Page 404 Page blanche

arrêt de code sans affichage d'erreur

21
vendredi 6 mars 2009 21

Recherche d’informations

Répertoires courants

• • • • • •

includes admin tmp data db uploads

22
vendredi 6 mars 2009 22

Recherche d’informations
• • • •
theHarvester
http://www.edge-security.com/theHarvester.php

MetaGoofil
http://www.edge-security.com/metagoofil.php

Nikto
http://www.cirt.net/

SEAT (Search Engine Assessment Tool)
http://midnightresearch.com/projects/searchengine-assessment-tool/

23
vendredi 6 mars 2009 23

Recherche d’informations

Subdomainer
http://www.edge-security.com/subdomainer.php

24
vendredi 6 mars 2009 24

Recherche d’informations

http://www.cligraphcrm.com/

vendredi 6 mars 2009

25

Recherche d’informations

vendredi 6 mars 2009

26

Recherche d’informations
• • •
Google Google codesearch Milm0rm

vendredi 6 mars 2009

27

Trouver des vulnérabilités

Où trouver des vulnérabilités?

• • • • •

XSS CSRF Injections Remplacement de fichiers etc.
28

vendredi 6 mars 2009

28

Trouver des vulnérabilités
• •
Comment exploiter cette faiblesse? Que faire avec cette faille?

29
vendredi 6 mars 2009 29

Outils manuels

Firefox

• • • • • • •

Access Me Firebug Firecookie FirePHP HackBar Header Spy JavaScript Debugger
30

vendredi 6 mars 2009

30

Outils manuels

Firefox

• • • • • • •

Poster SQL Inject Me SQL Injection! User Agent Switcher Web Developer X-Forwarded-For Spoofer XSS Me Data
31

vendredi 6 mars 2009

31

Outils manuels

Rex Swain's HTTP Viewer
http://www.rexswain.com/httpview.html

32
vendredi 6 mars 2009 32

Scanneurs automatiques
• • •
Simple à mettre en oeuvre Permets de trouver les attaques les plus courantes Doivent être adaptés

• •

Mis à jour régulièrement Personnalisables

33
vendredi 6 mars 2009 33

Scanneurs automatiques
• • • •
Acunetix Web Vulnerability Scanner
http://www.acunetix.com/vulnerability-scanner/

BeEF
http://www.bindshell.net/tools/beef/

Burp Suite
http://portswigger.net/suite/

Metasploit
http://www.metasploit.com/

34
vendredi 6 mars 2009 34

Scanneurs automatiques
• • • •
Nikto
http://www.cirt.net/

PBlind
http://www.edge-security.com/pblind.php

Scrawlr
https://download.spidynamics.com/Products/scrawlr/

SCRT Mini MySqlat0r
http://www.scrt.ch/pages_en/minimysqlator.html 35

vendredi 6 mars 2009

35

Scanneurs automatiques
• •
SCRT Webshag
http://www.scrt.ch/pages_en/outils.html

XSSploit
http://www.scrt.ch/pages_en/xssploit.html

36
vendredi 6 mars 2009 36

Fuzzing
• •
Test par valeur aléatoire Stress des formulaires

• •

Bases de données

Test décomplexé

37
vendredi 6 mars 2009 37

Fuzzing
• • • •
Tous les caractères de \0 à \x255 Tous les caractères Unicode Les nombres 1, 0, -1, 0.99, extrêmes, infinis Chaînes

• •

Longues courtes
38

vendredi 6 mars 2009

38

Fuzzing

Dictionnaires de valeurs

• • •

de vulnérabilités

GET, POST, COOKIE Des variables tableaux •
c[]=1

39
vendredi 6 mars 2009 39

Fuzzing

Excédents de variables •
debug=1, task=view

• •

Manque de variables Encodages variés

UTF-8, Latin1, HTML, hexa

40
vendredi 6 mars 2009 40

Fuzzing
• • • •
Burp Suite
http://portswigger.net/suite/

SCRT Webshag
http://www.scrt.ch/pages_en/outils.html

WebSlayer
http://www.edge-security.com/webslayer.php

Wfuzz
http://www.edge-security.com/wfuzz.php

41
vendredi 6 mars 2009 41

Scénarios

Des tests plus adaptés

• • • •

fragiles

Automatiser les tests À utiliser avec le fuzzing À utiliser avec des serveurs mandataires

42
vendredi 6 mars 2009 42

Scénarios
• • • •
Burp Suite
http://portswigger.net/suite/

Firefox

Selenium IDE

Funkload
http://funkload.nuxeo.org/

ProxyStrike
http://www.edge-security.com/proxystrike.php

43
vendredi 6 mars 2009 43

Scénarios
• •
SCRT Webshag
http://www.scrt.ch/pages_en/outils.html

WebScarab
http://www.owasp.org/index.php/ Category:OWASP_WebScarab_Project

44
vendredi 6 mars 2009 44

Facilitez votre vie

Backtrack
http://www.remote-exploit.org/backtrack.html

vendredi 6 mars 2009

45

Facilitez votre vie

Samurai Web Testing Framework
http://samurai.inguardians.com/

vendredi 6 mars 2009

46

Sécure ?
vendredi 6 mars 2009 47

Les prolèmes
• •
Faux sentiment sécurité Ne marche pas toujours

vendredi 6 mars 2009

48

Notre cas
• •
La sécurité par l’insécurité La sécurité par l’instabilité

vendredi 6 mars 2009

49

Que faire?
• •
Tests manuels Les sources

Installer l’application

vendredi 6 mars 2009

50

Les fichiers
total 592 drwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx -rwxrwxrwx -rwxrwxrwx -rwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx -rwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx … drwxrwxrwx drwxrwxrwx 25 67 39 13 39 1 1 1 76 171 8 13 1 27 80 6 user user user user user user user user user user user user user user user user group group group group group group group group group group group group group group group group group group 850 2278 1326 442 1326 7692 3856 3165 2584 5814 272 442 2784 918 2720 204 23 23 23 23 23 11 11 11 23 23 23 23 11 23 23 23 Feb Feb Feb Feb Feb Sep Sep Sep Feb Feb Feb Feb Sep Feb Feb Feb 12:03 12:03 12:03 12:03 12:03 02:44 02:44 02:44 12:03 12:03 12:03 12:03 02:44 12:03 12:03 12:03 accueil action agent biblio compte connect.php err_navig.php erreur404.php etat fonctions images include index.php install inter_pages langue

7 user 36 user

238 2 Mar 18:15 log 1224 23 Feb 12:03 mail

vendredi 6 mars 2009

51

Les fichiers
total 592 drwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx -rwxrwxrwx -rwxrwxrwx -rwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx -rwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx … drwxrwxrwx drwxrwxrwx 25 67 39 13 39 1 1 1 76 171 8 13 1 27 80 6 user user user user user user user user user user user user user user user user group group group group group group group group group group group group group group group group group group 850 2278 1326 442 1326 7692 3856 3165 2584 5814 272 442 2784 918 2720 204 23 23 23 23 23 11 11 11 23 23 23 23 11 23 23 23 Feb Feb Feb Feb Feb Sep Sep Sep Feb Feb Feb Feb Sep Feb Feb Feb 12:03 12:03 12:03 12:03 12:03 02:44 02:44 02:44 12:03 12:03 12:03 12:03 02:44 12:03 12:03 12:03 accueil action agent biblio compte connect.php err_navig.php erreur404.php etat fonctions images include index.php install inter_pages langue

7 user 36 user

238 2 Mar 18:15 log 1224 23 Feb 12:03 mail

vendredi 6 mars 2009

52

Les fichiers
total 592 drwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx -rwxrwxrwx -rwxrwxrwx -rwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx -rwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx … drwxrwxrwx drwxrwxrwx 25 67 39 13 39 1 1 1 76 171 8 13 1 27 80 6 user user user user user user user user user user user user user user user user group group group group group group group group group group group group group group group group group group 850 2278 1326 442 1326 7692 3856 3165 2584 5814 272 442 2784 918 2720 204 23 23 23 23 23 11 11 11 23 23 23 23 11 23 23 23 Feb Feb Feb Feb Feb Sep Sep Sep Feb Feb Feb Feb Sep Feb Feb Feb 12:03 12:03 12:03 12:03 12:03 02:44 02:44 02:44 12:03 12:03 12:03 12:03 02:44 12:03 12:03 12:03 accueil action agent biblio compte connect.php err_navig.php erreur404.php etat fonctions images include index.php install inter_pages langue

7 user 36 user

238 2 Mar 18:15 log 1224 23 Feb 12:03 mail

vendredi 6 mars 2009

53

Les fichiers
total 592 drwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx -rwxrwxrwx -rwxrwxrwx -rwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx -rwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx … drwxrwxrwx drwxrwxrwx 25 67 39 13 39 1 1 1 76 171 8 13 1 27 80 6 user user user user user user user user user user user user user user user user group group group group group group group group group group group group group group group group group group 850 2278 1326 442 1326 7692 3856 3165 2584 5814 272 442 2784 918 2720 204 23 23 23 23 23 11 11 11 23 23 23 23 11 23 23 23 Feb Feb Feb Feb Feb Sep Sep Sep Feb Feb Feb Feb Sep Feb Feb Feb 12:03 12:03 12:03 12:03 12:03 02:44 02:44 02:44 12:03 12:03 12:03 12:03 02:44 12:03 12:03 12:03 accueil action agent biblio compte connect.php err_navig.php erreur404.php etat fonctions images include index.php install inter_pages langue

7 user 36 user

238 2 Mar 18:15 log 1224 23 Feb 12:03 mail

vendredi 6 mars 2009

54

Les fichiers
total 592 drwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx -rwxrwxrwx -rwxrwxrwx -rwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx -rwxrwxrwx drwxrwxrwx drwxrwxrwx drwxrwxrwx … drwxrwxrwx drwxrwxrwx 25 67 39 13 39 1 1 1 76 171 8 13 1 27 80 6 user user user user user user user user user user user user user user user user group group group group group group group group group group group group group group group group group group 850 2278 1326 442 1326 7692 3856 3165 2584 5814 272 442 2784 918 2720 204 23 23 23 23 23 11 11 11 23 23 23 23 11 23 23 23 Feb Feb Feb Feb Feb Sep Sep Sep Feb Feb Feb Feb Sep Feb Feb Feb 12:03 12:03 12:03 12:03 12:03 02:44 02:44 02:44 12:03 12:03 12:03 12:03 02:44 12:03 12:03 12:03 accueil action agent biblio compte connect.php err_navig.php erreur404.php etat fonctions images include index.php install inter_pages langue

7 user 36 user

238 2 Mar 18:15 log 1224 23 Feb 12:03 mail

vendredi 6 mars 2009

55

Les fichiers
cligraphcrm/include/fpdf: total 376 -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group 46002 705 47404 14922 5238 7629 1243 27075 4317 12852 26 11 26 26 11 11 11 11 11 11 Jan Sep Jan Jan Sep Sep Sep Sep Sep Sep 02:41 02:44 18:07 14:50 02:44 02:44 02:44 02:44 02:44 02:44 fpdf.php fpdf_entete.php fpdf_facture.php fpdf_html2pdf.php fpdf_mem_image.php fpdf_memoire.php fpdf_table_def.inc fpdf_tableau.php fpdf_texte.php fpdf_writetag.php

vendredi 6 mars 2009

56

Les fichiers
cligraphcrm/include/fpdf: total 376 -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group -rwxrwxrwx 1 user group 46002 705 47404 14922 5238 7629 1243 27075 4317 12852 26 11 26 26 11 11 11 11 11 11 Jan Sep Jan Jan Sep Sep Sep Sep Sep Sep 02:41 02:44 18:07 14:50 02:44 02:44 02:44 02:44 02:44 02:44 fpdf.php fpdf_entete.php fpdf_facture.php fpdf_html2pdf.php fpdf_mem_image.php fpdf_memoire.php fpdf_table_def.inc fpdf_tableau.php fpdf_texte.php fpdf_writetag.php

vendredi 6 mars 2009

57

Les fichiers
cligraphcrm/install/sql/tables: total 928 -rwxrwxrwx 1 user group 4750 -rwxrwxrwx 1 user group 4802 -rwxrwxrwx 1 user group 190 -rwxrwxrwx 1 user group 1111 -rwxrwxrwx 1 user group 1637 -rwxrwxrwx 1 user group 578 -rwxrwxrwx 1 user group 1544 -rwxrwxrwx 1 user group 3231 -rwxrwxrwx 1 user group 581 -rwxrwxrwx 1 user group 3062 -rwxrwxrwx 1 user group 1605 -rwxrwxrwx 1 user group 741 -rwxrwxrwx 1 user group 701 -rwxrwxrwx 1 user group 537 -rwxrwxrwx 1 user group 527 -rwxrwxrwx 1 user group 547 -rwxrwxrwx 1 user group 4871 29 29 23 3 15 17 22 3 22 25 21 22 22 22 27 11 22 Jan Jan Nov Feb Jan Jan Oct Dec Oct Jan Jan Oct Oct Oct Jan Sep Oct 10:44 10:44 20:12 14:45 11:24 19:27 17:49 19:15 17:49 09:45 06:30 17:49 17:49 17:49 11:36 02:44 17:49 acces.sql acces_type.sql admin_crm.sql adresse.sql affaire.sql affaire_intvt.sql affaire_pdt.sql agent.sql argument.sql avoir.sql avoir_detail.sql campagne.sql campagne_promo.sql categorie_pdt.sql cgv.sql civilite.sql client.sql

vendredi 6 mars 2009

58

Installation

vendredi 6 mars 2009

59

Installation

vendredi 6 mars 2009

60

Installation

vendredi 6 mars 2009

61

Installation

vendredi 6 mars 2009

62

Installation

vendredi 6 mars 2009

63

Installation

vendredi 6 mars 2009

64

Installation

vendredi 6 mars 2009

65

Installation

vendredi 6 mars 2009

66

Audit de code

vendredi 6 mars 2009

67

Ordre du jour
• • •
Lire les logs et repérer les vulnérabilités Caractériser et supprimer les failles Evaluation du volume de correction

vendredi 6 mars 2009

68

Approche
• • • • •
Un point d’entrée Lecture du code Ouverture d’esprit et découverte Identifier la faille Comment l’exploiter

vendredi 6 mars 2009

69

Outils existants
• •
Rats http://www.fortifysoftware.com/security-resources/rats.jsp Yasca http://www.yasca.org
/accueil/accueil.php:478: High: fopen /action/facture_trt.php:170: High: eval /include/pear/File_Archive/Archive/Reader/Bzip2.php:80: High: bzopen /mail/mess_suppr_trt.php:193: High: mail /include/pear/PEAR/RunTest.php:449: High: system /fonctions/gallery.func.php:95: Medium: is_dir /include/pear/PEAR/Remote.php:296: Medium: fsockopen

vendredi 6 mars 2009

70

Trois moteurs
• • •
Grep Les expressions rationnelles Le tokenizer

vendredi 6 mars 2009

71

Approches
Sémantique Rapide

Sémantique : proche des concepts PHP et de programmation Rapide à mettre en place et exécuter

700 525 350

175 0 Grep

Regex

Tokenizer

vendredi 6 mars 2009

72

Occurrences
$_GET $_POST $_REQUEST Grep Regex Token 137 139 11 604 667 617 2650 3279 1518

vendredi 6 mars 2009

73

Choix
• • •
One-liner contre temps de développement Précision sémantique face à recherche brute Rejouable ou jetable

vendredi 6 mars 2009

74

Points d’intérêt
• • • • • •
index.php index_bis.php err_nav.php out.php erreur404.php verif.php

vendredi 6 mars 2009

75

Points d’intérêt
Entrée Traitement Sortie Filtrage Suivi Protection

vendredi 6 mars 2009

76

Cheminement
$_GET pdo_query

pdo_fetch echo

vendredi 6 mars 2009

77

Interfaces
• • • • •
Navigateur URL Cookies JavaScript SQL

• • • • •

Système Processus PHP XML LDAP ...

vendredi 6 mars 2009

78

Navigateur

Entrées

• •

$_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE

Sorties

• •

echo, print, var_dump

Protections

htmlentities, htmlspecialchars, strip_tags ext/xmlwriter

vendredi 6 mars 2009

79

URL

Entrées

• •

parse_url, urldecode, rawurldecode

Sorties

• •

echo, print, http_build_url, http_build_query, http_build_str

Protections


vendredi 6 mars 2009

url_encode, rawurlencode

80

Cookies

Entrées

• •

$_COOKIES, $HTTP_COOKIE_VARS, http_parse_cookies, session_name

Sorties

• •
vendredi 6 mars 2009

setcookies, setrawcookie, stream_context_create, httpRequest::setcookies, http_build_cookie

Protections

81

JavaScript

Entrées

• •

json_decode

Sorties

• •

json_encode, echo, print

Protections

Rien vraiment

vendredi 6 mars 2009

82

SQL

Entrées

• •

pdo_query, mysqli_query, query,

Sorties

• •

*fetch*, mysqli_error

Protections

pdo_quote, mysqli_real_escape_string, etc.

vendredi 6 mars 2009

83

Fichiers

Entrées

• •

fopen, file_get_contents, passthru

Sorties

• •

fwrite, fread, mkdir,

Protections

pathinfo, realpath

vendredi 6 mars 2009

84

PHP

Entrées

• •

eval, include, require et _once, dl, preg_replace, assert

Sorties

• •

var_export

Protections


vendredi 6 mars 2009

Aucune pour le code, fichiers pour les autres.

85

Système

Entrées

• •

ini_get, set_limit, getenv, getmypid, phpversion, phpinfo,

Sorties

• •

ini_set, setenv

Protections


vendredi 6 mars 2009

Aucune prévue

86

Trouvailles

vendredi 6 mars 2009

87

Register_globals
• • •
Register globals via fct_urldecode dans fonctions/ fonctions_gen.php Utilisation des superglobales, puis intuition sur le nom de la fonction $GLOBALS[$k] et affectation

vendredi 6 mars 2009

88

Injections SQL
• • •
$query="select theme_nom from theme where theme_id=\"".$_REQUEST['theme_id']."\""; Passer par les requêtes SQL, et chercher les variables globales Lire le contexte et repérer les variables sans filtrage

vendredi 6 mars 2009

89

err_nav.php XSS

• •

init_chem_crm est injecté directement

vendredi 6 mars 2009

90

Téléchargements
• • •
Via les fonctions header() Téléchargement de fichiers dans lanceur_dl.php Pas de protection des variables, ni par session

vendredi 6 mars 2009

91

$_REQUEST DOS

• $_REQUEST est utilisé pour le logout
if(isset($_REQUEST['opt']) && $_REQUEST['opt']==1)

• •

$_REQUEST == $_GET && $_POST && $_COOKIE Que se passe-t-il quand on pose un cookie ‘opt’ de 1?

vendredi 6 mars 2009

92

include
• • • • •
$format=$_REQUEST['exp_formdoc']; include(fct_lien_page_custom("action/facture_". $format.".php","abs")); Maitrise du chemin d’inclusion $exp_formdoc = "/../action/facture_fiche"; <- auto-inclusion! ou bien, tentative d’inclusion d’un phpinfo qui traine

vendredi 6 mars 2009

93

eval
• •
$nom=addslashes($_REQUEST['nom']); eval('insert_action_agent("'. $LANG_AGENT['cgv_mod'].'",66,'.$param_id.',"","'. $date_du_jour.'",2);'); PHP injection!

vendredi 6 mars 2009

94

die
• • •
$result2=$_SESSION['cligraph']->request($query2) or die($_SESSION['cligraph']->errormsg) Interruption de script en cas de problème de requêtes errormsg ne contient pas de message intéressant

vendredi 6 mars 2009

95

Code OK

• •

Opérateur @

vendredi 6 mars 2009

96

Sign up to vote on this title
UsefulNot useful