Ce repo illustre la conférence ci-dessous avec des exemples concrets.
https://www.youtube.com/watch?v=v_RzIPS72E0
- Une vulnérabilité SSRF (la même que https://github.com/avergnaud/csr-rsc-ssg-isr-ssr-ssrf#ssrf-fixed-in-nextjs-v1411)
- Une vulnérabilité XSS discutable / discutée par Vercel
- Une vulnérabilité XSS avec
dangerouslySetInnerHTML
This is a Next.js project bootstrapped with create-next-app
.
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.js
. The page auto-updates as you edit the file.
This project uses next/font
to automatically optimize and load Inter, a custom Google Font.
https://semgrep.dev/docs/getting-started/quickstart
podman container run --rm semgrep/semgrep semgrep --version
podman container run -it semgrep/semgrep semgrep login
-> retourne le token YOUR_TOKEN
.
podman container run -e SEMGREP_APP_TOKEN=YOUR_TOKEN --rm -v "${PWD}:/src" semgrep/semgrep semgrep ci
Résultat sur https://semgrep.dev :
outil | vulnérabilité détectée | niveau de détail |
---|---|---|
sonarcloud standard | ❌ démo | ❌ |
dependabot GitHub | ✅ | bof démo |
OWASP dependency check démo exec | ✅ | bof démo résultat |
semgrep | ✅ | ✅ donne la ligne |
https://github.com/theodo/RisXSS
Discuté : vercel/next.js#50093
-> Exfiltration des cookies et vol de session. Cf https://github.com/owasp-training/1-dom-xss/blob/main/README-fr.md
<div dangerouslySetInnerHTML={{
__html: "<img src='x' onerror='javascript:alert(1)' />"
}}>
</div>