🧩 总览:主流框架关键流程速查表(精华)
| 框架分类 | 常见框架 | 请求入口文件 | 路由位置 | 鉴权逻辑位置 | 中间件 | 控制器目录 |
|---|---|---|---|---|---|---|
| Node.js | Express, Koa, Nest.js, Next.js | app.js, server.js | router/*.js、routes/* | 中间件、guard、middleware | middleware/ | controllers/ |
| Java | Spring Boot, Spring MVC | DispatcherServlet | @RequestMapping 扫描 | Filter、Interceptor | Filter、Interceptor | controller/ |
| PHP | Laravel, ThinkPHP | public/index.php | routes/web.php | middleware/Authenticate.php | middleware/* | app/Http/Controllers |
| Python | Django, Flask, FastAPI | wsgi.py / manage.py runserver | urls.py | middlewares.py | middleware/ | views.py |
| Go | Gin, Beego | main.go | router.go | middleware | middleware | controller |
| 前端 SSR | Next.js, Nuxt.js | middleware.(ts/js) | pages/* / app/* | middleware | middleware | pages → server component |
下面进入详细版,可直接放你的框架漏洞复现笔记。
🟥 1. Node.js 主流框架
✅ Express
| 环节 | 文件/目录 | 作用 |
|---|---|---|
| 入口 | app.js / index.js | 创建 app,加载中间件、路由 |
| 路由 | routes/*.js | 定义 URL 对应控制器 |
| 中间件 | app.use() | 鉴权、日志、解析 body、token 校验 |
| 控制器 | controllers/*.js | 业务逻辑 |
| 会话/鉴权 | 自定义中间件、JWT 验证文件 | process token 的地方 |
流程: Request → app.js → middleware → routes → controller → response
✅ Koa
| 环节 | 文件 | 作用 |
|---|---|---|
| 入口 | app.js | 注册中间件 |
| 中间件链 | app.use(async (ctx,next)=>{}) | 核心逻辑,Koa 所有功能依靠 middleware |
| 路由 | router/*.js | URL 路由 |
| 控制器 | controllers/* |
特点: Koa 全是中间件链,漏洞大多出现在:
-
header 判断
-
ctx 结构解析
-
jwt/session middleware
✅ Nest.js(你未来一定会遇到)
| 环节 | 目录 | 作用 |
|---|---|---|
| 入口 | main.ts | create App |
| 模块 | modules/* | 模块化系统 |
| 控制器 | modules/**/controller.ts | 接收路由 |
| 守卫(鉴权) | guards/* | 权限验证 |
| 中间件 | middleware/* | 预处理请求 |
| 拦截器 | interceptors/* | 修改响应 |
这是最适合你学习代码审计的 Node 框架。
🟦 2. Next.js(你现在在复现的重点)
| 环节 | 文件/目录 | 作用 |
|---|---|---|
| 入口 | middleware.ts | 全站拦截,绝大多数逻辑漏洞出这里 |
| 路由 | app/* 或 pages/* | 每个 route 对应处理器 |
| Server Component | app/**/page.tsx | SSR 逻辑 |
| API 路由 | pages/api/**/* | 后端接口 |
| Edge Runtime | middleware 部署在 edge | header、cookie 解析问题频发 |
Next.js 所有鉴权漏洞来源:
-
middleware.ts判断不严 → 鉴权绕过 -
controller 与 middleware 判断顺序错乱
-
x-middleware-subrequest 处理不严(你现在的 CVE)
🟩 3. Java 主流框架:Spring Boot / Spring MVC
Java 框架非常统一,背后都用 Spring Web。
⭐ Spring Boot 关键路径(记住这个图)
| 环节 | 文件/目录 | 作用 |
|---|---|---|
| 入口 | Application.java | 启动 Spring |
| 核心路由入口 | DispatcherServlet | 所有请求经过它 |
| 过滤器 | Filter | 处理 header、CORS、auth(漏洞多) |
| 拦截器 | Interceptor | check 登录、权限、token |
| 控制器 | controller/** | 业务逻辑 |
| 服务层 | service/** | 数据处理 |
| 配置文件 | application.yml | 安全配置 |
Spring Boot 的漏洞大多数来自:
-
Filter/Interceptor 顺序混乱
-
permissive CORS
-
session 未校验
-
allowAnonymous 逻辑错误
-
path match 不严密(例如
/api/*导致绕过)
你以后一定要学会看:
WebSecurityConfigurerAdapterHandlerInterceptorFilterChain🟨 4. PHP:Laravel / ThinkPHP
⭐ Laravel 路径(安全岗最常遇到)
| 环节 | 文件/目录 |
|---|---|
| 入口 | public/index.php |
| Kernel | app/Http/Kernel.php(加载中间件链) |
| 路由文件 | routes/web.php、routes/api.php |
| 控制器 | app/Http/Controllers |
| 中间件(鉴权等漏洞来源) | app/Http/Middleware/** |
| 模型 | app/Models |
Laravel 的所有鉴权漏洞都来自:
-
某 middleware 判断太松
-
判断顺序错误
-
用户身份没有校验完整(例如 guard 或 ability)
你想研究鉴权漏洞的话 → 就盯着
app/Http/Middleware/Authenticate.php🟧 ThinkPHP
| 环节 | 文件 |
|---|---|
| 入口 | public/index.php |
| 配置 | config/* |
| 中间件 | middleware/* |
| 模块 | app/* |
| 控制器 | app/**/controller |
ThinkPHP 的漏洞主要集中在:
-
路由解析漏洞
-
method override
-
过滤器逻辑错误
🟪 5. Python:Flask / Django / FastAPI
⭐ Django(最完整体系)
| 环节 | 文件/目录 |
|---|---|
| 入口 | manage.py → wsgi.py |
| URL 路由 | urls.py |
| 中间件链 | settings.py → MIDDLEWARE 列表 |
| 视图函数 | views.py |
| 认证系统 | django.contrib.auth |
| 权限检查 | view 装饰器 / middleware |
Django 漏洞往往出现在:
-
自定义 middleware 漏洞
-
CSRF 配置错误
-
URL 正则匹配缺陷
⭐ Flask(轻量,但漏洞多)
| 环节 | 文件 |
|---|---|
| 入口 | app.py |
| 路由 | @app.route() |
| 中间件 | before_request |
| 控制器 | 各函数 |
漏洞主要是:
-
缺少鉴权(因为太灵活)
-
路由不严谨
-
debug 模式开启(经典)
⭐ FastAPI
| 环节 | 位置 |
|---|---|
| 入口 | main.py |
| 路由 | @app.get() |
| 中间件 | @app.middleware("http") |
| 控制器 | 同路由 |
FastAPI 的鉴权漏洞主要来自:
- dependency 注入的判断逻辑不严
🟫 6. Go:Gin / Beego
⭐ Gin
| 环节 | 文件 |
|---|---|
| 入口 | main.go |
| 路由 | router.go |
| 中间件 | Use() |
| 控制器 | controller/*.go |
漏洞多集中在:
-
middleware 未做严格 token 检查
-
handler 顺序问题
🧿 最关键的总结(你真正需要记住的)
无论什么框架,影响漏洞的只有这五处:
① 请求入口文件
Node:app.js
Laravel:public/index.php
Spring:DispatcherServlet
Next.js:middleware.ts
② 中间件链(所有漏洞核心)
Laravel:Kernel.php
Spring:Filter / Interceptor
Node:app.use()
Next.js:middleware.ts
③ 路由系统
Laravel:routes/web.php
Spring:@RequestMapping
Next.js:pages/*
④ 鉴权逻辑文件
Laravel:Authenticate.php
Spring:Interceptor
Node:自定义 auth.js
Next.js:middleware.ts
⑤ 控制器函数
Spring:controller/
Laravel:Controllers/
Next:pages/*