Pentest & Bug Bounty
  • 🥷Pentest et Bug Bounty
    • 👾Pentest Methodology
    • 💸Bug Bounty Methodology
      • 📓Ecrire un bon rapport
      • ⚖️Aspect Juridique (FR)
  • 👣OSINT / Recon
    • 🧦Sock Puppet
    • 🧠Mindmaps
    • 🏢Entreprise
    • 👀Leaks
    • 👊Manuel / Dorks
      • Google dorks
      • Github dorks
      • Twitter Dorks
      • Shodan Dorks
    • 👥Réseaux sociaux (SOCMINT)
      • 🕵️Telegram OSINT
      • 👻Snapchat OSINT
      • 🤵‍♂️Linkedin OSINT
      • 🗣️Facebook OSINT
      • 🎼Tik tok OSINT
      • 📷Instagram OSINT
      • 🐦Twitter OSINT
      • 🔊Discord OSINT
    • 🖇️Domaines et Sous-domaines
    • 🚪Scan de ports / web
    • ✉️Emails
    • 🔗Réseau
    • 📷Screenshots
    • 📹Live camera
    • 🧔Reconnaissance faciale / images
    • 🌆Images
    • 🗺️Maps
    • 👁️Active Directory
    • ☁️Cloud
    • Autre
  • 🌐Pentest Web
    • ✊Brute force / Fuzzing
    • 💉Injections
      • 🍪XSS
        • PDF injection
      • 📄HTMLi
      • 📃XXE
      • 7️⃣SSTI
      • 🔢SQLi
        • 👫UNION based
        • ⏳Time based
        • 🥽Boolean based / Error Based
        • 📤Out-Of-Band
      • ↩️CRLF
      • 🐚OS injection
      • ☕Log4Shell
      • 🥠CSV
      • 🍻ESI
      • 😎XSLT
      • 💌Injections dans emails
      • 🔀ELi
        • OGNLi
    • ↪️Open redirect
    • 📁Path Traversal / LFI / RFI
    • 🔓Bypass
      • 〰️WAF / Filter bypass
      • 2️2FA
    • ☠️Charges utiles
    • 📚CMS (Content Management System)
      • WordPress
      • Joomla!
      • Magento
      • Drupal
    • 🎭SOP bypass
      • CORS
      • postMessage()
      • JSONP
    • 🖱️Clickjacking
    • ⚙️Insecure deserialization
    • ☣️Web Cache Poisoning / Deception
    • 🤝HTTP Smuggling
    • 👋OAuth
    • ⛔SAML
    • 🗝️JSON Web Token
    • 🎣CSRF
      • 🚀Cross-site WebSocket Hijacking (CSWSH)
    • 🎯IDOR
    • 🕹️SSRF
      • Cloud SSRF
      • Protocol Smuggling
    • ⚙️APIs
      • 🍽️REST
      • 📶GraphQL
    • ❓Mot de passe oublié
    • 🛒Fonctions d'achat et de facturation
    • 👽Broken authentication / register
    • 🏁Panneaux d'administration
    • ⏬Upload features
    • 🔗Broken Link Hijacking
    • 🎮Prise de contrôle de sous-domaine
    • 🛂Prise de contrôle de DNS
    • ☝️One liners
    • 🚧Misconfigurations
    • 🗿Analyse statique
      • PHP
      • Ruby On Rails
      • Perl
      • JAVA
      • Javascript
      • Python
      • Golang
      • .NET
    • 🪣AWS S3
    • 🤖Captcha
    • 🪞Race conditions
    • ☄️.git exposé
    • 💭Business logic
    • 🥡Prototype pollution
    • 💣Dependency confusion
    • 🛑DoS
      • 🤯ReDoS
      • 👏Hash flooding
      • 🧨Cookie bomb
    • Autre
      • Flask
      • Symphony
      • Spring Boot
      • Django
      • Jenkins
  • 🌩️Pentest Cloud
    • IaC (Infrastructure as Code)
      • Terraform
      • Helm
      • Kustomize
    • AWS
      • Enumeration
    • Azure
      • Entra ID
      • Azure Resource Manager (ARM)
        • Enumeration
    • GCP
      • GCP IAM
      • Authentification
      • Enumeration
    • Kubernetes
  • 🕸️Pentest Réseau
    • 🪡Protocoles réseau
    • 📡Wifi
    • 🔋BLE
    • 📍VPN
  • 🗂️Pentest AD
    • 👺GPP
    • ➡️Mouvements latéraux
      • 🔪Pass The Hash
      • 🗡️Over Pass The Hash
    • 📜ADCS
  • 📱Pentest Mobile
    • 🤖Android
      • 👾Méthodologie
      • 🌳Setup environnement
      • 🍇Collecte d'informations
      • 🔠Enumeration des données locales
      • 🔙Reverse engineering
        • 🪢Dé-obfuscation
      • ⛰️Analyse statique (Android)
      • 🐞Debug
      • 🎰Stockage de données non sécurisé
        • 📰Logs
        • 🤝Shared Preferences
        • 🔤Strings
        • 🗄️SQLite DB
        • 🗃️Realm DB
        • 🧠Mémoire
        • 📍Copy/Paste buffer caching
        • ⌨️Keyboard press caching
        • 🔙Backup
        • Carte SD
      • 🌩️Firebase/Appspot misconfig
      • 🔗Deeplinks vulns
        • Interception de contenu
        • WebView hijacking (via deeplink)
        • Invalid Digital assets links
      • 🖼️WebView vulns
        • WebView Hijacking
        • Exfiltration de données
        • RXSS
        • Vol de token
      • Guides outils
        • ⛏️Outil Drozer
          • Injections SQL (Android)
          • Path traversal (Android)
        • 🔬Outil Objection
        • 🪝Outil Frida
        • Outil Medusa / Mango
      • Bypass
        • 📲Contournement de détection d'emulateur
          • 📂Fichiers d'emulateurs
          • 🙋‍♂️Network Operator Name
        • 🦷Contournement des détections de rootage
          • 🧮Root management
          • 🗝️Clé de signature du noyau
          • 🧊Props dangereux
          • 🦸‍♂️Binaire "su"
          • ❌Permissions sur les repertoires
        • ☝️Contournement des protections biometriques
        • 📜SSL pinning bypass
        • Contournement de code PIN
      • 🔳Lecteur de code QR/EAN/Barres...
      • 💔Injection de backdoor
      • 🪧Task hijacking
      • 🎭Overlay attacks
        • Tapjacking
        • Invisible Keyboard
      • 📵Résilience
        • ⌨️Third Party Keyboards
        • ©️Allowed Copy/Paste on sensitive fields
        • 🛤️Background screen caching
        • 🖋️Schémas de signature
        • ⬆️In-App updates
      • 🤯Corruption de Mémoire
    • 🍏iOS
      • 🥅Méthodologie
      • 🧱Setup environnement (iOS)
      • ⏮️Reverse engineering (iOS)
      • 🏔️Analyse statique (iOS)
      • 🧿Contournement de détection de Jailbreak
      • 📌SSL pinning bypass (iOS)
      • 👇Contournement d'authentification biométrique
      • 🐛Contournement d'anti-Hooking/Debugging
      • 🙈Stockage de données non sécurisé (iOS)
        • 💭Mémoire (iOS)
        • 🏓Copy/Paste buffer caching (iOS)
        • 🍪Cookies (iOS)
        • 🗞️Logs (iOS)
        • ⌨️Cache du clavier (IOS)
        • Backup (IOS)
      • 📱Background screen caching
      • 🧑‍🚀WebView vulns (iOS)
      • Deeplinks vulns (iOS)
      • Lecteur de code QR
      • Firebase misc
  • 👷Pentest physique
    • 🔐Crochetage
    • 💳RFID
    • ⚙️Equipements
    • 💾Hardware Hacking
      • 📈UART
      • 🧪JTAG
      • ⚡SWD
      • 🪢SPI
      • 🚌I²C
      • 🔴Fault Injection
      • Side-Channel Attacks
    • 🐣Firmware hacking
  • 🖨️Pentest IoT
    • ⏪Replay de stream camera
    • 🗣️Assistants vocaux
    • 📹Camera IP
    • ⬇️DoS
    • 🖨️Imprimantes
    • 🎬Chromecast
  • 💀Hacking protocols
    • 😩Telnet - port 23
    • 🔐SSH - port 22
    • 📤FTP - port 21
    • ❔Whois - port 43
    • 👉DNS - port 53
    • 🐕‍🦺Kerberos - port 88
    • 💼SNMP - ports 161-162
    • 📨SMB - ports 445-139
    • 📧SMTP - ports 25-587
    • 🎦RTSP - port 554
    • 🔎MS-RPC - ports 135-593
    • ➕Rsync - port 873
    • 🔢MS-SQL - port 1433
    • 🏗️Docker - port 2375
    • 🔡MySQL - port 3306
    • 📝LDAP - ports 389, 636, 3268, 3269
    • 🖥️RDP - port 3389
    • ⌨️VNC - ports 5800,5801,5900,5901
  • 😈Ingénierie sociale
    • 🧠Concepts / Principes / Attaques
    • 🪧Ethique
    • 👤Profils comportementaux
  • 🔓Crack
  • 🛠️Autres outils utiles
    • 🚿Sandbox / Sanitizer
    • 🔤Générateurs de wordlists personnalisées
  • 🌜Post-Exploitation
    • 👔Énumération /Élévation de privilèges
      • 🐧Linux
        • CVE-2022-0847 (Dirty Pipe)
        • CVE 2021-4034 (PwnKit)
        • CVE 2021-3560 (Polkit)
      • 🪟Windows
        • 🖨️PrintNightmare
        • 🖨️SpoolFool
        • 🆔Usurpation de SAMAccountName
        • ⏲️Scheduled task/job (T1573.005)
        • 🐝HiveNightmare
        • 🔑Stored Credentials
        • 🎩SeImpersonatePrivilege
        • 🎒SeBackupPrivilege
        • 🍞Unquoted Service Path
        • 🧩DLL Hijacking
        • ©️SeBackupPrivilege
      • ⛴️Docker
    • 👻Effacement des traces
    • ⚓Persistance / Downloaders
    • 🛡️Defense evasion
    • 📦Exfiltration de Données
  • 🔎Forensic
    • 💡Méthodologie
    • 📺Live forensic
    • 💻Mémoire non volatile
    • 🕊️Mémoire volatile
    • 📄File forensic
Propulsé par GitBook
Sur cette page
  • Identifier les entrées utilisateur
  • Session
  • Path traversal / LFI
  • SQLi
  • Execution de code dynamique
  • OS injection
  • Open redirect
  • Sockets
  • XSS
  • Misc
  • Variable non initialisée
  • magic_quotes
  • Option de fichier .inc
  • Autres Mauvaises pratiques

Cet article vous a-t-il été utile ?

  1. Pentest Web
  2. Analyse statique

PHP

Identifier les entrées utilisateur

Variables
Description

$_GET

$HTTP_GET_VARS

Contient les paramètres envoyés dans une requête GET.

$_POST

$HTTP_POST_VARS

Contient les paramètres envoyés dans une requête POST.

$_COOKIE

$HTTP_COOKIE_VARS

Contient les cookies envoyés dans la requête.

$_REQUEST

Contient le contenu des variables précédentes.

$_FILES

$HTTP_POST_FILES

Contient les fichiers téléchargés dans la requête.

$_SERVER[‘REQUEST_METHOD’]

Contient les méthodes utilisées dans la requête.

$_SERVER[‘QUERY_STRING’]

Contient la chaîne de caractères compléte envoyé dans la requête.

$_SERVER[‘REQUEST_URI’]

Contient l'url compléte contenu dans la requête.

$_SERVER[‘HTTP_ACCEPT’]

Contenu du header Accept: de la raquête

$_SERVER[‘HTTP_ACCEPT_CHARSET’]

Contenu du header Accept-Charset: de la raquête

$SERVER[‘HTTP_ACCEPT_ENCODING’]

"" "" Accept-Encoding: "" ""

$SERVER[‘HTTP_ACCEPT_LANGUAGE’]

"" "" Accept-Language: "" ""

$_SERVER[‘HTTP_CONNECTION’]

"" "" Connection: "" ""

$_SERVER[‘HTTP_HOST’]

"" "" Host: "" ""

$_SERVER[‘HTTP_REFERER’]

"" "" Referer: "" ""

$_SERVER[‘HTTP_USER_AGENT’]

"" "" User-Agent: "" ""

$SERVER[‘HTTP_FOO’]

Contenu d'une en-tête HTTP custom (foo peut être remplacé par n'importe quel nom d'en-tête.

$_SERVER[‘PHP_SELF’]

Contient le nom du script en cours d'execution. Bien que le nom du script en lui même soit hors de porté de l'attaquant, il existe des cas dans lesquels cette variable peut être exploitable. Exemple de XSS: <form action=”<?= $_SERVER[‘PHP_SELF’] ?>”> Exploitation: /search.php/”><script>

Session

Variable
Description

$_SESSION

Contient les informations de session de l'utilisateur.

$HTTP_SESSION_VARS

"" "" si register_global est actif.

Path traversal / LFI

  • fopen

  • readfile

  • file

  • fpassthru

  • gzopen

  • gzfile

  • gzpassthru

  • readgzfile

  • copy

  • rename

  • rmdir

  • mkdir

  • unlink

  • file_get_contents

  • file_put_contents

  • parse_ini_file

  • dir

  • symlink

Inclusion et evaluation de scripts PHP:

  • include

  • include_once

  • require

  • require_once

  • virtual

SQLi

  • mysql_query()

  • mysql_db_query()

  • mysql_unbuffered_query()

  • pg_execute()

  • pg_query()

  • pg_query_params()

  • pg_prepare()

  • pg_send_execute()

  • pg_send_query()

  • pg_send_query_params()

  • pg_send_prepare()

  • mssql_execute()

  • mssql_query()

  • odbc_exec()

  • odbc_execute()

  • odbc_do()

  • odbc_prepare()

Préparation de requêtes:

  • mysqli->prepare

  • stmt->prepare

  • stmt->bind_param

  • stmt->execute

  • odbc_prepare

Execution de code dynamique

  • eval

  • call_user_func

  • call_user_func_array

  • call_user_method

  • call_user_method_array

  • create_function

OS injection

  • exec

  • execve

  • passthru

  • popen

  • proc_open

  • shell_exec

  • pcntl_exec

  • system

  • operateur (`)

Open redirect

  • http_redirect

  • header

  • HttpMessage::setResponseCode

  • HttpMessage::setHeaders

Sockets

  • socket_create

  • socket_connect

  • socket_write

  • socket_send

  • socket_recv

  • fsockopen

  • pfsockopen

XSS

Absence des fonctions:

  • htmlspecialchars()

  • htmlentities()

  • urlencode()

Chercher des entrées avec les commandes suivantes:

  • print

  • echo

  • <?= <expression> ?>

Misc

Variable non initialisée

En PHP, il est possible d'utiliser des variables sans les avoir initialisées préalablement ce qui peut parfois entrainer des business logic flaw.

Exemple:

<?php
if (authenticated_user())
{
$authorized = true;
}
if ($authorized)
{
include "/highly/sensitive/data.php";
}
?>

Ce code contient ainsi une vulnérabilité permettant de contourner le contrôle d'accès au fichier data.php. Les attaquants peuvent simplement ajouter le paramètre "authorized=" à la requête ou dans un cookie. PHP crée une variable globale nommée $authorized et la définit à la valeur 1. Ensuite, le code échoue la première instruction if, mais la deuxième instruction réussit et les données secrètes sont affichées.

magic_quotes

Un mécanisme de sécurité global appelé magic_quotes tente de freiner les attaques par injection de métacaractères. L'option de configuration magic_quotes_gpc (gpc signifie "get, post et cookie") active le échape les métacaractères dans toutes les données GET, POST et cookie. Cela signifie que chaque guillemet, guillemet double, barre oblique inverse et caractère NULL est automatiquement échappé avec un caractère barre oblique inverse. Cette option est activée par défaut à l'inverse de l'option magic_quotes_runtime désactivée par défaut. magic_quotes_runtime fait de même en échappant les données générées à l'exécution à partir de sources externes, y compris les bases de données et le système d'exploitation.

Il arrive que des développeurs désactives volontairement magic_quotes pour certaines raisons pouvant ainsi rendre l'application vulnérables aux injections de code.

Option de fichier .inc

Placer les fichiers d'en-tête et de structure dans les fichiers .inc est pratique courante. Une mauvaise configuration courante est que le serveur Web n'a pas le bon gestionnaire de fichiers mappé pour l'extension .inc. Demander le fichier d'inclusion vide ainsi directement son code source car il est traité comme un fichier texte ou HTML.

Autres Mauvaises pratiques

Option
Bonne pratique

allow_url_fopen

Doit être désactivé

allow_url_include

Doit être désactivé

display_errors

Doit être désactivé

file_uploads

Doit être désactivé

upload_tmp_dir

Si utilisé, doit pointer vers un répertoire qui n'est pas accessible aux utilisateurs

PrécédentAnalyse statiqueSuivantRuby On Rails

Dernière mise à jour il y a 2 ans

Cet article vous a-t-il été utile ?

🌐
🗿