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=victimréutilisé à l’étape 2). - Clickjacking sur la désactivation 2FA ; manipulation de réponse (
"success":false→true) 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.
Cookie Attacks
- 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+ magicGIF89a), 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(fuiteINSTALLED_APPS,DATABASES,AWS_*…) ; wordlistdjango_long.txt. - Symfony :
_profiler,app_dev.php/_profiler, secret fragment exploit (ambionics) ; nuclei templates ; wordlistsymphony_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/mypermissionspour 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).