Audit Sécurité
1vendredi 13 novembre 2009
Ordre du jour
• Présentation de l’atelier
• Audit boîte noire
• Audit à code ouvert
2vendredi 13 novembre 2009
Qui parle?
• Philippe Gamache
• Parler haut, interagir librement : audit de sécurité, formations
• Caviste de cidres de glace
3vendredi 13 novembre 2009
Qui parle?
• Damien Seguy
• Alter Way Consulting : services experts enlogiciels libres
• Editeur de calendriers
4vendredi 13 novembre 2009
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
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
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
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
Tests boîte noire
99vendredi 13 novembre 2009
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
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
Tests boîte noire
• Attaquer
• Attaquer une vulnérabilité avec un but précis
1212vendredi 13 novembre 2009
Recherche d’informations
• Moteurs de recherches
• Facebook, LinkedIn, Joboom, Monster
• Langage de programmation
• Logiciels utilisés
1313vendredi 13 novembre 2009
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
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
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
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
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
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
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
Recherche d’informations
• https
• Page 404
• Page blanche
• arrêt de code sans affichage d'erreur
2121vendredi 13 novembre 2009
Recherche d’informations
• Répertoires courants
• includes
• admin
• tmp
• data
• db
• uploads
2222vendredi 13 novembre 2009
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
Recherche d’informations
• Subdomainerhttp://www.edge-security.com/subdomainer.php
2424vendredi 13 novembre 2009
Recherche d’informations
• http://www.cligraphcrm.com/
25vendredi 13 novembre 2009
Recherche d’informations
26vendredi 13 novembre 2009
Recherche d’informations
• Google codesearch
• Milm0rm
27vendredi 13 novembre 2009
Trouver des vulnérabilités
• Où trouver des vulnérabilités?
• XSS
• CSRF
• Injections
• Remplacement de fichiers
• etc.
2828vendredi 13 novembre 2009
Trouver des vulnérabilités
• Comment exploiter cette faiblesse?
• Que faire avec cette faille?
2929vendredi 13 novembre 2009
Outils manuels• Firefox
• Access Me
• Firebug
• Firecookie
• FirePHP
• HackBar
• Header Spy
• JavaScript Debugger
3030vendredi 13 novembre 2009
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
Outils manuels
• Rex Swain's HTTP Viewer
http://www.rexswain.com/httpview.html
3232vendredi 13 novembre 2009
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
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
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
Scanneurs automatiques
• SCRT Webshaghttp://www.scrt.ch/pages_en/outils.html
• XSSploithttp://www.scrt.ch/pages_en/xssploit.html
3636vendredi 13 novembre 2009
Fuzzing
• Test par valeur aléatoire
• Stress des formulaires
• Bases de données
• Test décomplexé
3737vendredi 13 novembre 2009
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
Fuzzing
• Dictionnaires de valeurs
• de vulnérabilités
• GET, POST, COOKIE
• Des variables tableaux
• c[]=1
3939vendredi 13 novembre 2009
Fuzzing
• Excédents de variables
• debug=1, task=view
• Manque de variables
• Encodages variés
• UTF-8, Latin1, HTML, hexa
4040vendredi 13 novembre 2009
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
Scénarios
• Des tests plus adaptés
• fragiles
• Automatiser les tests
• À utiliser avec le fuzzing
• À utiliser avec des serveurs mandataires
4242vendredi 13 novembre 2009
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
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
Facilitez votre vie• Backtrack
http://www.remote-exploit.org/backtrack.html
45vendredi 13 novembre 2009
Facilitez votre vie• Samurai Web Testing Framework
http://samurai.inguardians.com/
46vendredi 13 novembre 2009
Sécure ?47vendredi 13 novembre 2009
Les prolèmes
• Faux sentiment sécurité
• Ne marche pas toujours
48vendredi 13 novembre 2009
Notre cas
• La sécurité par l’insécurité
• La sécurité par l’instabilité
49vendredi 13 novembre 2009
• Tests manuels
• Les sources
• Installer l’application
Que faire?
50vendredi 13 novembre 2009
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
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
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
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
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
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
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
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
Installation
59vendredi 13 novembre 2009
Installation
60vendredi 13 novembre 2009
Installation
61vendredi 13 novembre 2009
Installation
62vendredi 13 novembre 2009
Installation
63vendredi 13 novembre 2009
Installation
64vendredi 13 novembre 2009
Installation
65vendredi 13 novembre 2009
Installation
66vendredi 13 novembre 2009
Audit de code
67vendredi 13 novembre 2009
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
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
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
Trois moteurs
• Grep
• Les expressions rationnelles
• Le tokenizer
71vendredi 13 novembre 2009
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
Occurrences
$_GET $_POST $_REQUEST
Grep 137 604 2650
Regex 139 667 3279
Token 11 617 1518
73vendredi 13 novembre 2009
Choix
• One-liner contre temps de développement
• Précision sémantique face à recherche brute
• Rejouable ou jetable
74vendredi 13 novembre 2009
Points d’intérêt
• index.php
• index_bis.php
• err_nav.php
• out.php
• erreur404.php
• verif.php
75vendredi 13 novembre 2009
Points d’intérêt
Entrée Filtrage
Traitement Suivi
Sortie Protection
76vendredi 13 novembre 2009
Cheminement
$_GET
echo
pdo_query
pdo_fetch
77vendredi 13 novembre 2009
Interfaces
• Navigateur
• URL
• Cookies
• JavaScript
• SQL
• Système
• Processus
• PHP
• XML
• LDAP ...
78vendredi 13 novembre 2009
Navigateur• Entrées
• $_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE
• Sorties
• echo, print, var_dump
• Protections
• htmlentities, htmlspecialchars, strip_tagsext/xmlwriter
79vendredi 13 novembre 2009
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
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
JavaScript
• Entrées
• json_decode
• Sorties
• json_encode, echo, print
• Protections
• Rien vraiment
82vendredi 13 novembre 2009
SQL
• Entrées
• pdo_query, mysqli_query, query,
• Sorties
• *fetch*, mysqli_error
• Protections
• pdo_quote, mysqli_real_escape_string, etc.
83vendredi 13 novembre 2009
Fichiers
• Entrées
• fopen, file_get_contents, passthru
• Sorties
• fwrite, fread, mkdir,
• Protections
• pathinfo, realpath
84vendredi 13 novembre 2009
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
Système• Entrées
• ini_get, set_limit, getenv, getmypid, phpversion, phpinfo,
• Sorties
• ini_set, setenv
• Protections
• Aucune prévue
86vendredi 13 novembre 2009
Trouvailles
87vendredi 13 novembre 2009
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
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
err_nav.php XSS
• init_chem_crm est injecté directement
•
90vendredi 13 novembre 2009
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
$_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
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
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
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
Code OK
• Opérateur @
•
96vendredi 13 novembre 2009
97vendredi 13 novembre 2009
Top Related