Cybersecurity
  • Mon Blog
    • 🏠Home
    • 📦Archives
      • 2024
      • 2023
      • 2022
    • 📂Catégories
    • 📧A propos de moi
  • Mes projets
    • Livres / publications
      • Sécurité des applications web - Stratégies offensives et défensives
    • MyExpense
    • XSS Exploitation Tool
  • Mes Articles
    • 2025
      • Mars
        • Comment les requêtes préparées (prepared statement) protègent-elles contre les injections SQL ?
      • Janvier
        • XSS Exploitation Tool v0.7.0
    • 2024
      • Décembre
        • XSS Exploitation Tool v0.6.0
      • Septembre
        • MyExpense v1.4
      • Aout
        • XSS Exploitation Tool v0.5.0
        • Exploitation des injections SQL au sein de la clause ORDER BY
      • Juin
        • Parution de mon livre, Sécurité des applications web - Stratégies offensives et défensives
      • Mai
        • Dompurify 3.0.10 bypass - Confusion nodeName and CDATA
        • Dompurify 3.0.9 bypass - Node type confusion
      • Avril
        • Bypass de validation d'URL et embedded credentials côté front
      • Mars
        • MyExpense v1.3
    • 2023
      • Mai
        • MyExpense v1.2
      • Mars
        • MyExpense v1.1
        • Fonctionnement de l'entête X-Content-Type-Options - Contournement de CSP
      • Février
        • Fonctionnement de l'entête HTTP Strict Transport Security Header (HSTS)
    • 2022
      • Décembre
        • Les injections CSS - Règle @import
        • Les injections CSS - Scroll-to-Text Fragment
      • Novembre
        • Les injections CSS - Attribute Selector
        • Les injections CSS - Règle @font-face et descripteur unicode
      • Octobre
        • XSS Exploitation Tool v0.4.0
      • Septembre
        • Cross-Site Scripting (XSS) et schéma d'URI javascript
      • Juillet
        • SAST - PHP CodeSniffer orienté sécurité dans Visual Studio (sous Windows)
        • SAST - PHP CodeSniffer orienté sécurité dans Visual Studio (sous Debian)
        • Est-il possible de contourner la fonction PHP htmlspecialchars() ?
  • Common Vulnerabilities and Exposures (CVE)
    • 2024
      • CVE-2024-29415
    • 2023
      • CVE-2023-42282
    • 2022
      • CVE-2022-33910
      • CVE-2022-32444
      • CVE-2022-32442
    • 2020
      • CVE-2020-26311
  • Livres
    • 2023
      • Attacking and Exploiting Modern Web Applications
      • DevSecOps - Développez et administrez vos services en toute sécurité
    • 2022
      • Hacking APIs - Breaking Web Application Programming Interfaces
    • 2018
      • Practical Web Penetration Testing
      • Web Hacking 101: How to Make Money Hacking Ethically
  • Walkthroughs
    • Capture The Flag
      • Hack.lu CTF 2019
        • Nucular Power Plant
      • TAMUctf 2019
        • 1337 Secur1ty
        • Bird Box Challenge
        • Science!
    • Deliberately Vulnerable
      • CORS vulnerable Lab
        • Application Trust Arbritrary Origin
        • Application has bad "regex" Implementation to check Trusted Origin
        • Application Trust "null" Origin
      • Damn Vulnerable Web Application (DVWA)
        • Brute Force
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • Command Injection
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • CSRF
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • File Inclusion
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • File Upload
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • Insecure CAPTCHA
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • SQL Injection
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • SQL Injection (Blind)
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • Weak Session IDs
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • XSS (DOM)
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • XSS (Reflected)
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • XSS (Stored)
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • CSP Bypass
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
        • Javascript
          • Niveau "Low"
          • Niveau "Medium"
          • Niveau "High"
      • Unescape() room
        • Level 1 (practice)
        • Level 2 (practice)
        • Level 3 (practice)
        • Level 4 (practice)
        • Level 5 (practice)
        • Level 6 (practice)
        • Level 7 (practice)
        • Level 8 (practice)
        • Level 9 (practice)
        • Level 10 (practice)
      • VulnHub
        • GoatseLinux: 1
        • Hackademic: RTB1
        • Hackademic: RTB2
        • Holynix: v1
        • Holynix: v2
        • Kioptrix: Level 1 (#1)
        • Kioptrix: Level 1.1 (#2)
        • Kioptrix: Level 1.2 (#3)
        • Kioptrix: Level 1.3 (#4)
        • LAMPSecurity: CTF4
        • LAMPSecurity: CTF5
        • LAMPSecurity: CTF6
        • Metasploitable: 1
        • pWnOS 1.0
        • pWnOS 2.0 (Pre-Release)
      • XSS Vulnerability Challenges
        • xss1
        • xss2
        • xss3
        • xss4
        • xss5
        • xxs6
        • xss7
        • xss8
Propulsé par GitBook
Sur cette page
  • Installation
  • Références
  1. Mes Articles
  2. 2022
  3. Juillet

SAST - PHP CodeSniffer orienté sécurité dans Visual Studio (sous Debian)

18 Juillet 2022

PrécédentSAST - PHP CodeSniffer orienté sécurité dans Visual Studio (sous Windows)SuivantEst-il possible de contourner la fonction PHP htmlspecialchars() ?

Dernière mise à jour il y a 1 an

Un article concernant l'installation de PHP_CodeSniffer sous Windows est également disponible .

PHP Code Sniffer est un outil qui permet d'analyser le code source PHP d'une application pour détecter des mauvaises pratiques de développement en se basant sur un ensemble de règles. Ces règles concernent principalement la qualité du code, mais il est également possible d'en ajouter pour détecter des failles de sécurité.

Installation

  1. La première étape est d'installer l'outil grâce au gestionnaire de paquets apt :

$ sudo apt-get install php-codesniffer
Lecture des listes de paquets... Fait
Dépaquetage de php-codesniffer (3.6.2-1)

L'exécutable est présent dans le répertoire /usr/bin/ :

$ which phpcs
/usr/bin/phpcs

et les règles sont dans le dossier /usr/share/php/PHP/CodeSniffer/src/ :

$ ls -l /usr/share/php/PHP/CodeSniffer/src
total 228
-rw-r--r--  1 root root 66054 Jun 18 16:57 Config.php
drwxr-xr-x  2 root root  4096 Jul 19 00:42 Exceptions
drwxr-xr-x  2 root root  4096 Jul 19 00:42 Files
drwxr-xr-x  2 root root  4096 Jul 19 00:42 Filters
-rw-r--r--  1 root root 23868 Jun 18 16:57 Fixer.php
drwxr-xr-x  2 root root  4096 Jul 19 00:42 Generators
-rw-r--r--  1 root root 13445 Jun 18 16:57 Reporter.php
drwxr-xr-x  2 root root  4096 Jul 19 00:42 Reports
-rw-r--r--  1 root root 50807 Jun 18 16:57 Ruleset.php
-rw-r--r--  1 root root 31532 Jun 18 16:57 Runner.php
drwxr-xr-x  2 root root  4096 Jul 19 00:42 Sniffs
drwxr-xr-x 10 root root  4096 Jul 19 00:42 Standards
drwxr-xr-x  2 root root  4096 Jul 19 00:42 Tokenizers
drwxr-xr-x  2 root root  4096 Jul 19 00:42 Util
$ sudo cp -R /tmp/Security /usr/share/php/PHP/CodeSniffer/src/
$ ls -l
total 232
-rw-r--r--  1 root root 66054 Jun 18 16:57 Config.php
drwxr-xr-x  2 root root  4096 Jul 19 00:42 Exceptions
drwxr-xr-x  2 root root  4096 Jul 19 00:42 Files
drwxr-xr-x  2 root root  4096 Jul 19 00:42 Filters
-rw-r--r--  1 root root 23868 Jun 18 16:57 Fixer.php
drwxr-xr-x  2 root root  4096 Jul 19 00:42 Generators
-rw-r--r--  1 root root 13445 Jun 18 16:57 Reporter.php
drwxr-xr-x  2 root root  4096 Jul 19 00:42 Reports
-rw-r--r--  1 root root 50807 Jun 18 16:57 Ruleset.php
-rw-r--r--  1 root root 31532 Jun 18 16:57 Runner.php
drwxr-xr-x  3 root root  4096 Jul 19 00:48 Security
drwxr-xr-x  2 root root  4096 Jul 19 00:42 Sniffs
drwxr-xr-x 10 root root  4096 Jul 19 00:42 Standards
drwxr-xr-x  2 root root  4096 Jul 19 00:42 Tokenizers
drwxr-xr-x  2 root root  4096 Jul 19 00:42 Util

3. Dans Visual Studio Code, installer l'extension phpcs :

4. Configurer l'extension de la façon suivante (éditer le fichier settings.json pour plus de facilité) :

L'extension est maintenant bien configurée et fonctionnelle. Par exemple, ici la détection de l'utilisation de shell_exec() dans l'application bWAPP menant à une injection de commande :

Références

2. Récupérer le jeu de règles (ruleset) orienté sécurité présent dans le dossier "Security" sur le dépôt Github suivant : et le déposer dans le dossier /src/ :

ici
https://github.com/FloeDesignTechnologies/phpcs-security-audit
https://pear.php.net/package/PHP_CodeSniffer/
https://github.com/FloeDesignTechnologies/phpcs-security-audit