laboratoire sécurité : audit de code php - conférence php québec 2009
DESCRIPTION
Durant ce laboratoire, nous allons réaliser un audit sécurité d'une application Web Open Source. L'objectif technique est de dresser un rapport complet, et d'assimiler toutes les phases du travail d'enquête : analyse boîte noire, analyse à code ouvert, recensement des vulnérabilités (XSS, injections, dévoilement, etc), recommandations de renforcement, priorisation des tâches. Toutes les compétences seront mises à l'épreuve dans cet excercice complexe. Nous travaillerons sur une application réelle : (Nom de l'application à venir ultérieurement). Le laboratoire se terminera avec la remise du rapport aux auteurs de l'application pour qu'ils puissent avoir un regard extérieur sur le niveau de sécurité de l'application.TRANSCRIPT
![Page 1: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/1.jpg)
Audit Sécurité
1vendredi 13 novembre 2009
![Page 2: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/2.jpg)
Ordre du jour
• Présentation de l’atelier
• Audit boîte noire
• Audit à code ouvert
2vendredi 13 novembre 2009
![Page 3: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/3.jpg)
Qui parle?
• Philippe Gamache
• Parler haut, interagir librement : audit de sécurité, formations
• Caviste de cidres de glace
3vendredi 13 novembre 2009
![Page 4: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/4.jpg)
Qui parle?
• Damien Seguy
• Alter Way Consulting : services experts enlogiciels libres
• Editeur de calendriers
4vendredi 13 novembre 2009
![Page 5: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/5.jpg)
Livre sécurité
• Nouvelle édition 2009
• Bilan complet de lasécurité : système, MySQL, PHP, etc
• Edité chez Eyrolles
• Dédicaces sur demande
5vendredi 13 novembre 2009
![Page 6: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/6.jpg)
Cligraph CRM• CRM/GRC Open Source
• Version 0.991
• Activement développé
• Soutenu par Cogiveahttp://www.cogivea.com/
• Léger, rapide et puissant
• http://www.cligraphcrm.com/
6vendredi 13 novembre 2009
![Page 7: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/7.jpg)
Cligraph CRM
• Technologies PHP et MySQL, Javascript
• Code développé depuis 5 ans
• 4970 fichiers
• 1200 fichiers PHP
• 320 000 lignes de code
7vendredi 13 novembre 2009
![Page 8: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/8.jpg)
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
8vendredi 13 novembre 2009
![Page 9: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/9.jpg)
Tests boîte noire
99vendredi 13 novembre 2009
![Page 10: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/10.jpg)
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?
1010vendredi 13 novembre 2009
![Page 11: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/11.jpg)
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?
1111vendredi 13 novembre 2009
![Page 12: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/12.jpg)
Tests boîte noire
• Attaquer
• Attaquer une vulnérabilité avec un but précis
1212vendredi 13 novembre 2009
![Page 13: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/13.jpg)
Recherche d’informations
• Moteurs de recherches
• Facebook, LinkedIn, Joboom, Monster
• Langage de programmation
• Logiciels utilisés
1313vendredi 13 novembre 2009
![Page 14: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/14.jpg)
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>
1414vendredi 13 novembre 2009
![Page 15: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/15.jpg)
Recherche d’informations
• Moteurs de recherches (suite)
• Krugle : echo $_GET
• Bases de données de vulnérabilités
• BUGTRAQ
• CERT
• CVE
• Milw0rm
1515vendredi 13 novembre 2009
![Page 16: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/16.jpg)
Recherche d’informations
• Google codesearch :
• XSSlang:php (echo|print).*\$_(GET|POST|COOKIE|REQUEST)
• Injection SQLlang:php query\(.*\$_(GET|POST|COOKIE|REQUEST).*\)
• Injection de codelang:php (include|include_once| require|require_once).*\$_(GET| POST|COOKIE|REQUEST)
1616vendredi 13 novembre 2009
![Page 17: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/17.jpg)
Recherche d’informations
• Google codesearch :
• Injection d'en-tête HTTPlang:php header\s*\(.*\$_(SERVER| GET|POST|COOKIE|REQUEST).*\)
• Fixation de sessionlang:php session_start\(\)lang:php session_regenerate_id\(\)
1717vendredi 13 novembre 2009
![Page 18: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/18.jpg)
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).*\)
1818vendredi 13 novembre 2009
![Page 19: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/19.jpg)
Recherche d’informations
• Google codesearch :
• Mots de passes
filetype:sql INSERTintitle:"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+('|");
1919vendredi 13 novembre 2009
![Page 20: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/20.jpg)
Recherche d’informations
• robots.txt
• Alias Apache
• /icons/
• Signatures dans les en têtes
• curl, wget, Firefox, Rex Swain's HTTP Viewer
• .phps
2020vendredi 13 novembre 2009
![Page 21: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/21.jpg)
Recherche d’informations
• https
• Page 404
• Page blanche
• arrêt de code sans affichage d'erreur
2121vendredi 13 novembre 2009
![Page 22: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/22.jpg)
Recherche d’informations
• Répertoires courants
• includes
• admin
• tmp
• data
• db
• uploads
2222vendredi 13 novembre 2009
![Page 23: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/23.jpg)
Recherche d’informations
• theHarvesterhttp://www.edge-security.com/theHarvester.php
• MetaGoofilhttp://www.edge-security.com/metagoofil.php
• Nikto
http://www.cirt.net/
• SEAT (Search Engine Assessment Tool)http://midnightresearch.com/projects/search-engine-assessment-tool/
2323vendredi 13 novembre 2009
![Page 24: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/24.jpg)
Recherche d’informations
• Subdomainerhttp://www.edge-security.com/subdomainer.php
2424vendredi 13 novembre 2009
![Page 25: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/25.jpg)
Recherche d’informations
• http://www.cligraphcrm.com/
25vendredi 13 novembre 2009
![Page 26: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/26.jpg)
Recherche d’informations
26vendredi 13 novembre 2009
![Page 27: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/27.jpg)
Recherche d’informations
• Google codesearch
• Milm0rm
27vendredi 13 novembre 2009
![Page 28: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/28.jpg)
Trouver des vulnérabilités
• Où trouver des vulnérabilités?
• XSS
• CSRF
• Injections
• Remplacement de fichiers
• etc.
2828vendredi 13 novembre 2009
![Page 29: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/29.jpg)
Trouver des vulnérabilités
• Comment exploiter cette faiblesse?
• Que faire avec cette faille?
2929vendredi 13 novembre 2009
![Page 30: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/30.jpg)
Outils manuels• Firefox
• Access Me
• Firebug
• Firecookie
• FirePHP
• HackBar
• Header Spy
• JavaScript Debugger
3030vendredi 13 novembre 2009
![Page 31: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/31.jpg)
Outils manuels• Firefox
• Poster
• SQL Inject Me
• SQL Injection!
• User Agent Switcher
• Web Developer
• X-Forwarded-For Spoofer
• XSS Me Data
3131vendredi 13 novembre 2009
![Page 32: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/32.jpg)
Outils manuels
• Rex Swain's HTTP Viewer
http://www.rexswain.com/httpview.html
3232vendredi 13 novembre 2009
![Page 33: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/33.jpg)
Scanneurs automatiques
• Simple à mettre en oeuvre
• Permets de trouver les attaques les plus courantes
• Doivent être adaptés
• Mis à jour régulièrement
• Personnalisables
3333vendredi 13 novembre 2009
![Page 34: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/34.jpg)
Scanneurs automatiques
• Acunetix Web Vulnerability Scanner
http://www.acunetix.com/vulnerability-scanner/
• BeEFhttp://www.bindshell.net/tools/beef/
• Burp Suitehttp://portswigger.net/suite/
• Metasploit http://www.metasploit.com/
3434vendredi 13 novembre 2009
![Page 35: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/35.jpg)
Scanneurs automatiques
• Nikto
http://www.cirt.net/
• PBlindhttp://www.edge-security.com/pblind.php
• Scrawlrhttps://download.spidynamics.com/Products/scrawlr/
• SCRT Mini MySqlat0rhttp://www.scrt.ch/pages_en/minimysqlator.html
3535vendredi 13 novembre 2009
![Page 36: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/36.jpg)
Scanneurs automatiques
• SCRT Webshaghttp://www.scrt.ch/pages_en/outils.html
• XSSploithttp://www.scrt.ch/pages_en/xssploit.html
3636vendredi 13 novembre 2009
![Page 37: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/37.jpg)
Fuzzing
• Test par valeur aléatoire
• Stress des formulaires
• Bases de données
• Test décomplexé
3737vendredi 13 novembre 2009
![Page 38: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/38.jpg)
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
3838vendredi 13 novembre 2009
![Page 39: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/39.jpg)
Fuzzing
• Dictionnaires de valeurs
• de vulnérabilités
• GET, POST, COOKIE
• Des variables tableaux
• c[]=1
3939vendredi 13 novembre 2009
![Page 40: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/40.jpg)
Fuzzing
• Excédents de variables
• debug=1, task=view
• Manque de variables
• Encodages variés
• UTF-8, Latin1, HTML, hexa
4040vendredi 13 novembre 2009
![Page 41: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/41.jpg)
Fuzzing
• Burp Suitehttp://portswigger.net/suite/
• SCRT Webshaghttp://www.scrt.ch/pages_en/outils.html
• WebSlayerhttp://www.edge-security.com/webslayer.php
• Wfuzzhttp://www.edge-security.com/wfuzz.php
4141vendredi 13 novembre 2009
![Page 42: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/42.jpg)
Scénarios
• Des tests plus adaptés
• fragiles
• Automatiser les tests
• À utiliser avec le fuzzing
• À utiliser avec des serveurs mandataires
4242vendredi 13 novembre 2009
![Page 43: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/43.jpg)
Scénarios
• Burp Suitehttp://portswigger.net/suite/
• Firefox
• Selenium IDE
• Funkloadhttp://funkload.nuxeo.org/
• ProxyStrikehttp://www.edge-security.com/proxystrike.php
4343vendredi 13 novembre 2009
![Page 44: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/44.jpg)
Scénarios• SCRT Webshag
http://www.scrt.ch/pages_en/outils.html
• WebScarabhttp://www.owasp.org/index.php/Category:OWASP_WebScarab_Project
4444vendredi 13 novembre 2009
![Page 45: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/45.jpg)
Facilitez votre vie• Backtrack
http://www.remote-exploit.org/backtrack.html
45vendredi 13 novembre 2009
![Page 46: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/46.jpg)
Facilitez votre vie• Samurai Web Testing Framework
http://samurai.inguardians.com/
46vendredi 13 novembre 2009
![Page 47: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/47.jpg)
Sécure ?47vendredi 13 novembre 2009
![Page 48: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/48.jpg)
Les prolèmes
• Faux sentiment sécurité
• Ne marche pas toujours
48vendredi 13 novembre 2009
![Page 49: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/49.jpg)
Notre cas
• La sécurité par l’insécurité
• La sécurité par l’instabilité
49vendredi 13 novembre 2009
![Page 50: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/50.jpg)
• Tests manuels
• Les sources
• Installer l’application
Que faire?
50vendredi 13 novembre 2009
![Page 51: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/51.jpg)
Les fichierstotal 592drwxrwxrwx 25 user group 850 23 Feb 12:03 accueildrwxrwxrwx 67 user group 2278 23 Feb 12:03 actiondrwxrwxrwx 39 user group 1326 23 Feb 12:03 agentdrwxrwxrwx 13 user group 442 23 Feb 12:03 bibliodrwxrwxrwx 39 user group 1326 23 Feb 12:03 compte-rwxrwxrwx 1 user group 7692 11 Sep 02:44 connect.php-rwxrwxrwx 1 user group 3856 11 Sep 02:44 err_navig.php-rwxrwxrwx 1 user group 3165 11 Sep 02:44 erreur404.phpdrwxrwxrwx 76 user group 2584 23 Feb 12:03 etatdrwxrwxrwx 171 user group 5814 23 Feb 12:03 fonctionsdrwxrwxrwx 8 user group 272 23 Feb 12:03 imagesdrwxrwxrwx 13 user group 442 23 Feb 12:03 include-rwxrwxrwx 1 user group 2784 11 Sep 02:44 index.phpdrwxrwxrwx 27 user group 918 23 Feb 12:03 installdrwxrwxrwx 80 user group 2720 23 Feb 12:03 inter_pagesdrwxrwxrwx 6 user group 204 23 Feb 12:03 langue…drwxrwxrwx 7 user group 238 2 Mar 18:15 logdrwxrwxrwx 36 user group 1224 23 Feb 12:03 mail
51vendredi 13 novembre 2009
![Page 52: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/52.jpg)
Les fichierstotal 592drwxrwxrwx 25 user group 850 23 Feb 12:03 accueildrwxrwxrwx 67 user group 2278 23 Feb 12:03 actiondrwxrwxrwx 39 user group 1326 23 Feb 12:03 agentdrwxrwxrwx 13 user group 442 23 Feb 12:03 bibliodrwxrwxrwx 39 user group 1326 23 Feb 12:03 compte-rwxrwxrwx 1 user group 7692 11 Sep 02:44 connect.php-rwxrwxrwx 1 user group 3856 11 Sep 02:44 err_navig.php-rwxrwxrwx 1 user group 3165 11 Sep 02:44 erreur404.phpdrwxrwxrwx 76 user group 2584 23 Feb 12:03 etatdrwxrwxrwx 171 user group 5814 23 Feb 12:03 fonctionsdrwxrwxrwx 8 user group 272 23 Feb 12:03 imagesdrwxrwxrwx 13 user group 442 23 Feb 12:03 include-rwxrwxrwx 1 user group 2784 11 Sep 02:44 index.phpdrwxrwxrwx 27 user group 918 23 Feb 12:03 installdrwxrwxrwx 80 user group 2720 23 Feb 12:03 inter_pagesdrwxrwxrwx 6 user group 204 23 Feb 12:03 langue…drwxrwxrwx 7 user group 238 2 Mar 18:15 logdrwxrwxrwx 36 user group 1224 23 Feb 12:03 mail
52vendredi 13 novembre 2009
![Page 53: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/53.jpg)
Les fichierstotal 592drwxrwxrwx 25 user group 850 23 Feb 12:03 accueildrwxrwxrwx 67 user group 2278 23 Feb 12:03 actiondrwxrwxrwx 39 user group 1326 23 Feb 12:03 agentdrwxrwxrwx 13 user group 442 23 Feb 12:03 bibliodrwxrwxrwx 39 user group 1326 23 Feb 12:03 compte-rwxrwxrwx 1 user group 7692 11 Sep 02:44 connect.php-rwxrwxrwx 1 user group 3856 11 Sep 02:44 err_navig.php-rwxrwxrwx 1 user group 3165 11 Sep 02:44 erreur404.phpdrwxrwxrwx 76 user group 2584 23 Feb 12:03 etatdrwxrwxrwx 171 user group 5814 23 Feb 12:03 fonctionsdrwxrwxrwx 8 user group 272 23 Feb 12:03 imagesdrwxrwxrwx 13 user group 442 23 Feb 12:03 include-rwxrwxrwx 1 user group 2784 11 Sep 02:44 index.phpdrwxrwxrwx 27 user group 918 23 Feb 12:03 installdrwxrwxrwx 80 user group 2720 23 Feb 12:03 inter_pagesdrwxrwxrwx 6 user group 204 23 Feb 12:03 langue…drwxrwxrwx 7 user group 238 2 Mar 18:15 logdrwxrwxrwx 36 user group 1224 23 Feb 12:03 mail
53vendredi 13 novembre 2009
![Page 54: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/54.jpg)
Les fichierstotal 592drwxrwxrwx 25 user group 850 23 Feb 12:03 accueildrwxrwxrwx 67 user group 2278 23 Feb 12:03 actiondrwxrwxrwx 39 user group 1326 23 Feb 12:03 agentdrwxrwxrwx 13 user group 442 23 Feb 12:03 bibliodrwxrwxrwx 39 user group 1326 23 Feb 12:03 compte-rwxrwxrwx 1 user group 7692 11 Sep 02:44 connect.php-rwxrwxrwx 1 user group 3856 11 Sep 02:44 err_navig.php-rwxrwxrwx 1 user group 3165 11 Sep 02:44 erreur404.phpdrwxrwxrwx 76 user group 2584 23 Feb 12:03 etatdrwxrwxrwx 171 user group 5814 23 Feb 12:03 fonctionsdrwxrwxrwx 8 user group 272 23 Feb 12:03 imagesdrwxrwxrwx 13 user group 442 23 Feb 12:03 include-rwxrwxrwx 1 user group 2784 11 Sep 02:44 index.phpdrwxrwxrwx 27 user group 918 23 Feb 12:03 installdrwxrwxrwx 80 user group 2720 23 Feb 12:03 inter_pagesdrwxrwxrwx 6 user group 204 23 Feb 12:03 langue…drwxrwxrwx 7 user group 238 2 Mar 18:15 logdrwxrwxrwx 36 user group 1224 23 Feb 12:03 mail
54vendredi 13 novembre 2009
![Page 55: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/55.jpg)
Les fichierstotal 592drwxrwxrwx 25 user group 850 23 Feb 12:03 accueildrwxrwxrwx 67 user group 2278 23 Feb 12:03 actiondrwxrwxrwx 39 user group 1326 23 Feb 12:03 agentdrwxrwxrwx 13 user group 442 23 Feb 12:03 bibliodrwxrwxrwx 39 user group 1326 23 Feb 12:03 compte-rwxrwxrwx 1 user group 7692 11 Sep 02:44 connect.php-rwxrwxrwx 1 user group 3856 11 Sep 02:44 err_navig.php-rwxrwxrwx 1 user group 3165 11 Sep 02:44 erreur404.phpdrwxrwxrwx 76 user group 2584 23 Feb 12:03 etatdrwxrwxrwx 171 user group 5814 23 Feb 12:03 fonctionsdrwxrwxrwx 8 user group 272 23 Feb 12:03 imagesdrwxrwxrwx 13 user group 442 23 Feb 12:03 include-rwxrwxrwx 1 user group 2784 11 Sep 02:44 index.phpdrwxrwxrwx 27 user group 918 23 Feb 12:03 installdrwxrwxrwx 80 user group 2720 23 Feb 12:03 inter_pagesdrwxrwxrwx 6 user group 204 23 Feb 12:03 langue…drwxrwxrwx 7 user group 238 2 Mar 18:15 logdrwxrwxrwx 36 user group 1224 23 Feb 12:03 mail
55vendredi 13 novembre 2009
![Page 56: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/56.jpg)
Les fichierscligraphcrm/include/fpdf:total 376-rwxrwxrwx 1 user group 46002 26 Jan 02:41 fpdf.php-rwxrwxrwx 1 user group 705 11 Sep 02:44 fpdf_entete.php-rwxrwxrwx 1 user group 47404 26 Jan 18:07 fpdf_facture.php-rwxrwxrwx 1 user group 14922 26 Jan 14:50 fpdf_html2pdf.php-rwxrwxrwx 1 user group 5238 11 Sep 02:44 fpdf_mem_image.php-rwxrwxrwx 1 user group 7629 11 Sep 02:44 fpdf_memoire.php-rwxrwxrwx 1 user group 1243 11 Sep 02:44 fpdf_table_def.inc-rwxrwxrwx 1 user group 27075 11 Sep 02:44 fpdf_tableau.php-rwxrwxrwx 1 user group 4317 11 Sep 02:44 fpdf_texte.php-rwxrwxrwx 1 user group 12852 11 Sep 02:44 fpdf_writetag.php
56vendredi 13 novembre 2009
![Page 57: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/57.jpg)
Les fichierscligraphcrm/include/fpdf:total 376-rwxrwxrwx 1 user group 46002 26 Jan 02:41 fpdf.php-rwxrwxrwx 1 user group 705 11 Sep 02:44 fpdf_entete.php-rwxrwxrwx 1 user group 47404 26 Jan 18:07 fpdf_facture.php-rwxrwxrwx 1 user group 14922 26 Jan 14:50 fpdf_html2pdf.php-rwxrwxrwx 1 user group 5238 11 Sep 02:44 fpdf_mem_image.php-rwxrwxrwx 1 user group 7629 11 Sep 02:44 fpdf_memoire.php-rwxrwxrwx 1 user group 1243 11 Sep 02:44 fpdf_table_def.inc-rwxrwxrwx 1 user group 27075 11 Sep 02:44 fpdf_tableau.php-rwxrwxrwx 1 user group 4317 11 Sep 02:44 fpdf_texte.php-rwxrwxrwx 1 user group 12852 11 Sep 02:44 fpdf_writetag.php
57vendredi 13 novembre 2009
![Page 58: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/58.jpg)
Les fichierscligraphcrm/install/sql/tables:total 928-rwxrwxrwx 1 user group 4750 29 Jan 10:44 acces.sql-rwxrwxrwx 1 user group 4802 29 Jan 10:44 acces_type.sql-rwxrwxrwx 1 user group 190 23 Nov 20:12 admin_crm.sql-rwxrwxrwx 1 user group 1111 3 Feb 14:45 adresse.sql-rwxrwxrwx 1 user group 1637 15 Jan 11:24 affaire.sql-rwxrwxrwx 1 user group 578 17 Jan 19:27 affaire_intvt.sql-rwxrwxrwx 1 user group 1544 22 Oct 17:49 affaire_pdt.sql-rwxrwxrwx 1 user group 3231 3 Dec 19:15 agent.sql-rwxrwxrwx 1 user group 581 22 Oct 17:49 argument.sql-rwxrwxrwx 1 user group 3062 25 Jan 09:45 avoir.sql-rwxrwxrwx 1 user group 1605 21 Jan 06:30 avoir_detail.sql-rwxrwxrwx 1 user group 741 22 Oct 17:49 campagne.sql-rwxrwxrwx 1 user group 701 22 Oct 17:49 campagne_promo.sql-rwxrwxrwx 1 user group 537 22 Oct 17:49 categorie_pdt.sql-rwxrwxrwx 1 user group 527 27 Jan 11:36 cgv.sql-rwxrwxrwx 1 user group 547 11 Sep 02:44 civilite.sql-rwxrwxrwx 1 user group 4871 22 Oct 17:49 client.sql
58vendredi 13 novembre 2009
![Page 59: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/59.jpg)
Installation
59vendredi 13 novembre 2009
![Page 60: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/60.jpg)
Installation
60vendredi 13 novembre 2009
![Page 61: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/61.jpg)
Installation
61vendredi 13 novembre 2009
![Page 62: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/62.jpg)
Installation
62vendredi 13 novembre 2009
![Page 63: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/63.jpg)
Installation
63vendredi 13 novembre 2009
![Page 64: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/64.jpg)
Installation
64vendredi 13 novembre 2009
![Page 65: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/65.jpg)
Installation
65vendredi 13 novembre 2009
![Page 66: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/66.jpg)
Installation
66vendredi 13 novembre 2009
![Page 67: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/67.jpg)
Audit de code
67vendredi 13 novembre 2009
![Page 68: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/68.jpg)
Ordre du jour
• Lire les logs et repérer les vulnérabilités
• Caractériser et supprimer les failles
• Evaluation du volume de correction
68vendredi 13 novembre 2009
![Page 69: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/69.jpg)
Approche
• Un point d’entrée
• Lecture du code
• Ouverture d’esprit et découverte
• Identifier la faille
• Comment l’exploiter
69vendredi 13 novembre 2009
![Page 70: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/70.jpg)
Outils existants• Rats
http://www.fortifysoftware.com/security-resources/rats.jsp
• Yascahttp://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
70vendredi 13 novembre 2009
![Page 71: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/71.jpg)
Trois moteurs
• Grep
• Les expressions rationnelles
• Le tokenizer
71vendredi 13 novembre 2009
![Page 72: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/72.jpg)
Approches
• Sémantique : prochedes concepts PHP et de programmation
• Rapide à mettre en place et exécuter
0
175
350
525
700
Grep Regex Tokenizer
Sémantique Rapide
72vendredi 13 novembre 2009
![Page 73: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/73.jpg)
Occurrences
$_GET $_POST $_REQUEST
Grep 137 604 2650
Regex 139 667 3279
Token 11 617 1518
73vendredi 13 novembre 2009
![Page 74: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/74.jpg)
Choix
• One-liner contre temps de développement
• Précision sémantique face à recherche brute
• Rejouable ou jetable
74vendredi 13 novembre 2009
![Page 75: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/75.jpg)
Points d’intérêt
• index.php
• index_bis.php
• err_nav.php
• out.php
• erreur404.php
• verif.php
75vendredi 13 novembre 2009
![Page 76: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/76.jpg)
Points d’intérêt
Entrée Filtrage
Traitement Suivi
Sortie Protection
76vendredi 13 novembre 2009
![Page 77: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/77.jpg)
Cheminement
$_GET
echo
pdo_query
pdo_fetch
77vendredi 13 novembre 2009
![Page 78: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/78.jpg)
Interfaces
• Navigateur
• URL
• Cookies
• JavaScript
• SQL
• Système
• Processus
• PHP
• XML
• LDAP ...
78vendredi 13 novembre 2009
![Page 79: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/79.jpg)
Navigateur• Entrées
• $_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE
• Sorties
• echo, print, var_dump
• Protections
• htmlentities, htmlspecialchars, strip_tagsext/xmlwriter
79vendredi 13 novembre 2009
![Page 80: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/80.jpg)
URL• Entrées
• parse_url, urldecode, rawurldecode
• Sorties
• echo, print, http_build_url, http_build_query, http_build_str
• Protections
• url_encode, rawurlencode
80vendredi 13 novembre 2009
![Page 81: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/81.jpg)
Cookies
• Entrées
• $_COOKIES, $HTTP_COOKIE_VARS, http_parse_cookies, session_name
• Sorties
• setcookies, setrawcookie, stream_context_create, httpRequest::setcookies, http_build_cookie
• Protections
81vendredi 13 novembre 2009
![Page 82: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/82.jpg)
JavaScript
• Entrées
• json_decode
• Sorties
• json_encode, echo, print
• Protections
• Rien vraiment
82vendredi 13 novembre 2009
![Page 83: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/83.jpg)
SQL
• Entrées
• pdo_query, mysqli_query, query,
• Sorties
• *fetch*, mysqli_error
• Protections
• pdo_quote, mysqli_real_escape_string, etc.
83vendredi 13 novembre 2009
![Page 84: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/84.jpg)
Fichiers
• Entrées
• fopen, file_get_contents, passthru
• Sorties
• fwrite, fread, mkdir,
• Protections
• pathinfo, realpath
84vendredi 13 novembre 2009
![Page 85: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/85.jpg)
PHP• Entrées
• eval, include, require et _once, dl, preg_replace, assert
• Sorties
• var_export
• Protections
• Aucune pour le code, fichiers pour les autres.
85vendredi 13 novembre 2009
![Page 86: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/86.jpg)
Système• Entrées
• ini_get, set_limit, getenv, getmypid, phpversion, phpinfo,
• Sorties
• ini_set, setenv
• Protections
• Aucune prévue
86vendredi 13 novembre 2009
![Page 87: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/87.jpg)
Trouvailles
87vendredi 13 novembre 2009
![Page 88: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/88.jpg)
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
88vendredi 13 novembre 2009
![Page 89: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/89.jpg)
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
89vendredi 13 novembre 2009
![Page 90: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/90.jpg)
err_nav.php XSS
• init_chem_crm est injecté directement
•
90vendredi 13 novembre 2009
![Page 91: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/91.jpg)
Téléchargements
• Via les fonctions header()
• Téléchargement de fichiers dans lanceur_dl.php
• Pas de protection des variables, ni par session
91vendredi 13 novembre 2009
![Page 92: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/92.jpg)
$_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?
92vendredi 13 novembre 2009
![Page 93: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/93.jpg)
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
93vendredi 13 novembre 2009
![Page 94: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/94.jpg)
eval
• $nom=addslashes($_REQUEST['nom']);
• eval('insert_action_agent("'.$LANG_AGENT['cgv_mod'].'",66,'.$param_id.',"","'.$date_du_jour.'",2);');
• PHP injection!
94vendredi 13 novembre 2009
![Page 95: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/95.jpg)
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
95vendredi 13 novembre 2009
![Page 96: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/96.jpg)
Code OK
• Opérateur @
•
96vendredi 13 novembre 2009
![Page 97: Laboratoire sécurité : audit de code PHP - Conférence PHP Québec 2009](https://reader033.vdocuments.mx/reader033/viewer/2022061206/54833c87b4af9fbc268b4808/html5/thumbnails/97.jpg)
97vendredi 13 novembre 2009