Notes

✅ Web Vulnerability Checklist

Checklist d'audit web : 2FA, ATO, IDOR, CSRF, file upload, Jira, mass assignment, SQLi, RXSS et plus.

Web Vulnerability Checklist

Checklist d’audit web (basée sur le repo vulnerability-Checklist). Données de lab.

2FA Bypass

  • Logique de vérification défaillante (cookie account=victim réutilisé à l’étape 2).
  • Clickjacking sur la désactivation 2FA ; manipulation de réponse ("success":falsetrue) ou de status code (4xx → 200).
  • Réutilisation du code 2FA ; CSRF sur la désactivation ; abus des backup codes.
  • Absence d’expiration de session à l’activation ; bypass via header Referer ; fuite du code dans la réponse.
  • Analyse des fichiers JS ; absence de rate-limit / brute-force ; reset email = désactivation 2FA.
  • Réutilisation de token entre comptes ; bypass null/000000 ; sessions précédentes toujours valides après activation MFA.

403 Bypass

  • Fuzz / brute force du chemin, wayback.
  • Headers : X-Original-URL, X-Rewrite-URL, X-Forwarded-For, X-Custom-IP-Authorization: 127.0.0.1, etc.
  • Payloads d’URL : %2e, ..;/, /./, //, /%2f, ;, ?, #, encodages multiples (%252e).
  • Outils : bypass-403, 4-ZERO-3, B1pass3r.

Account Takeover (ATO)

  • Pre-account takeover (même email, méthodes d’inscription différentes).
  • Rate-limit insuffisant, exposition de données sensibles (OTP/hash dans la réponse).
  • XSS → exfiltration cookie/token ; CSRF/IDOR sur update email/password.
  • Response/status manipulation, crypto faible, HTTP request smuggling, CORS mal configuré, session cookie fuité.

Admin panel

  • Credentials par défaut (admin:admin, admin:password…).
  • Bypass par SQLi / XSS / manipulation de réponse (200/302/success).
  • Brute-force, fuzzing de répertoires, suppression de paramètre dans la requête.
  • Erreurs de comparaison PHP (user[]=a&pwd=b), JSON avec booléens, NoSQL/XPath/LDAP injection.

AEM (Adobe Experience Manager)

  • Détection via nuclei tech-detect ; aem_hacker.py, aem-hacker, aem-rce-bundle.
  • Bypass dispatcher (CVE-2016-0957) : querybuilder.json/a.css, ;%0aa.css, .servlet.css, ///etc.json.
  • SSRF (Opensocial proxy, ReportingServicesProxyServlet CVE-2018-12809), RCE via Groovy console, XSS, secrets depuis le JCR (DefaultGETServlet, QueryBuilder servlets), DoS.

API Authentication / Authorization

  • 97 tests JSON sur les endpoints d’auth (creds vides/null/nombres/booléens/arrays/objets, SQLi, unicode, malformed JSON, clés dupliquées, etc.).
  • BOLA/IDOR : ID prédictible, combo ID, email comme ID, group ID, objets imbriqués, tokens prédictibles, pollution de paramètres (%0d%0a, [2222,1111], 2222;1111…).

Authentication

  • URLs post-auth accessibles directement ; CAPTCHA bypass via X-Forwarded-For.
  • Absence de confirmation de mot de passe (change email/password, delete, 2FA).
  • Absence de vérification email, pas de rate-limit, énumération d’utilisateurs, politique de mot de passe faible, inscription en HTTP.
  • Broken auth / session token bugs (reset token réutilisable après changement d’email).

Business Logic

  • Manipulation de prix (négatif, ×0.5, +-), IDOR sur profils, panier.
  • Abus des reviews / coupons (réutilisation, race condition, HPP), delivery charges, currency arbitrage, premium/refund abuse, cart/wishlist.
  • Parameter tampering, manipulation de résultats d’examen (1=true), flags d’auth & privesc applicatif, LDAP param, contraintes métier, bypass de flux.
  • Données sensibles stockées ; cookie length → buffer overflow ; injection arbitraire (CRLF) ; mass assignment.
  • Cookie bomb (DoS) ; SQLi dans le cookie ; parameter pollution ; auth bypass ; XSS reflété ; session puzzling.
  • Python code injection / OS command via eval(compile(...)) dans un cookie ; insecure deserialization.

CSRF

  • Bypass : pas de token / token faible / réutilisable, check content-type / referer, changement de méthode, method override, token dupliqué dans un cookie.
  • Tester : suppression du token, token non lié à la session, referer validation dépendante de sa présence.

EXIF / Geolocation

Images uploadées dont les métadonnées EXIF (géoloc, device) ne sont pas strippées → divulgation. Vérifier via exif.regex.info/exif.cgi.

File Upload

  • Bypass extensions : .pht, .phtml, double extension (.jpg.php), null byte (shell.php%00.jpg), casse mixte (pHp), caractères spéciaux (php%20, php...), RTL override (name.%E2%80%AEphp.jpg), ADS Windows (file.php::$data).
  • Content-Type spoofing (image/gif + magic GIF89a), double Content-Type, filename dupliqué.
  • Charges : XSS (SVG/HTML), XXE (SVG/XML), SSRF (filename = URL, type=url), LFI (image.png../../../etc/passwd), OOB SQLi via filename, RCE (ImageTragick, ffmpeg HLS, zip symlink, .htaccess/web.config).
  • ImageMagick/Ghostscript : lecture de fichiers et exécution de commandes via PostScript.

Django / Symfony

  • Django : debug mode → RCE ; /app/tmp/healthcheck.json, /fxa-rp-events (fuite INSTALLED_APPS, DATABASES, AWS_*…) ; wordlist django_long.txt.
  • Symfony : _profiler, app_dev.php/_profiler, secret fragment exploit (ambionics) ; nuclei templates ; wordlist symphony_long.txt.

IDOR

  • Deux comptes, changement de param ID ; changement de méthode HTTP ; path traversal ; content-type ; wildcard ; versions d’API obsolètes ; JSON param pollution ; wrapping ID ([123], {userid:123}) ; GraphQL.

Jira

  • Scanners (Jiraffe, jira_scan, Jira-Lens) ; CVE-2017-9506 (SSRF), 2019-8451 (SSRF), 2019-8449/3403 (user enum), 2019-11581 (SSTI/RCE), 2019-3396 (path traversal/RCE), 2020-14179/14178/14181, 2021-26086 (file read), 2022-0540 (auth bypass), 2022-26135 (SSRF).
  • /rest/api/2/mypermissions pour vérifier les privilèges non-authentifiés ; Google dorks Jira.

Mass Assignment

Tester admin:true, role:admin, user_priv:administrator, org:CompanyA sur register/reset/login/change email. Automatisation : arjun --headers ... --include='{$arjun$}'.

Rate limit bypass

Null chars (%00, %0d%0a, %09), Host header injection, changement de cookie/session, X-Forwarded-For (multiples), double header.

RCE (chaînes)

Via dependency confusion, file upload, SQLi, LFI (log poisoning), SSRF, XXE (expect://), command injection (LaTeX), insecure deserialization, SSTI (tplmap).

Register

  • Overwrite d’un utilisateur existant (même email, casse différente), DoS sur name/password, pas de rate-limit, XSS dans username/email.
  • Bypass de vérification email (response/status manipulation), politique de mot de passe faible, path overwrite (index.php, login.php).

Reset password

  • Token de l’attaquant sur l’email victime, Host Header injection, HTML injection dans le Host, fuite du token dans le Referer.
  • Ajout de password/pass à l’invitation, CRLF dans l’URL, suppression/0000/null/array de tokens, SQLi wildcard, response manipulation, token massif, usage cross-domain, fuite dans le body.

RXSS

  • Outils : xsscrapy, XSStrike, Dalfox, kxss, gxss.
  • Oneliners : cat targets | waybackurls | gf xss | ... | dalfox pipe. Injecter via l’API si l’UI filtre.

SQL injection (payloads)

Grande liste de payloads (' or 1=1--, time-based SLEEP(5), WAITFOR DELAY, BENCHMARK, pg_sleep, UNION SELECT 1..N, stacked queries, etc.). Voir le fichier sqlpayload.txt du vault.

Tips (Twitter/veille)

Nombreuses astuces : role JS admin_role, IIS c:/Windows/Win.ini, CloudFront bypass, JS recon (LinkFinder/JS-Miner), wp-config.php.swp, SQLi auth bypass '--, PeopleSoft default creds, SVN .svn/wc.db + svn-extractor, phpMyAdmin casse, JIRA dorks, GitHub recon (CSV/tokens), cookie bomb, XSS via JWT, {{7*7}} (AngularJS), IDOR Rails (/reports/12345).