Learn-skills.dev php-codeigniter-audit
CodeIgniter 框架特效安全审计工具。针对 CodeIgniter 的 CSRF、XSS 输出过滤、数据库查询构造、路由与验证器配置、会话 Cookie 安全等机制进行白盒静态审计,并映射到通用漏洞类型体系(CSRF/AUTH/XSS/SQL/CFG/SESS 等)。
install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/0xshe/php-code-audit-skill/php-codeigniter-audit" ~/.claude/skills/neversight-learn-skills-dev-php-codeigniter-audit && rm -rf "$T"
manifest:
data/skills-md/0xshe/php-code-audit-skill/php-codeigniter-audit/SKILL.mdsource content
PHP CodeIgniter 框架安全审计(php-codeigniter-audit)
分析 CodeIgniter 项目的框架机制与配置踩坑,重点覆盖:
- CSRF 保护是否启用与 token 名称/校验逻辑是否正确
- 输出过滤与 XSS 防护(CI 自带过滤器是否被禁用或错误使用)
- 数据库查询构造:是否存在用户输入拼接到
或原生 SQL$this->db->query - 表单验证器是否被覆盖或绕过
- 会话 Cookie flags 安全性(CI 会话设置)
输入
用户提供:
:CodeIgniter 项目根目录 可选:source_path
:输出目录路径(默认output_path
){source_path}_audit
输出目录
输出到:
{output_path}/framework_audit/ codeigniter_{timestamp}.md
框架识别(必做)
必须给出识别证据(不允许空口断言):
- 典型目录:
、application/system/ - 配置文件:
或会话/安全配置文件application/config/config.php - 版本线索:
或composer.json
结构system/core/
风险类型映射(必做)
每条发现都必须写明:
- 通用类型码:
/CSRF
/XSS
/SQL
/AUTH
/CFG
/SESS
等LOGIC - 映射原因
必审清单(必做:逐项检查并输出结果)
1) CSRF 保护(CSRF)
必须定位并输出:
- CSRF 是否启用(CI 3:
的 csrf 配置,CI 4:Security 类配置)config.php - token 名称、校验入口与跳过规则(是否某些控制器/方法未启用校验)
判定规则:
- 存在状态变更路由但未启用 CSRF,则输出 CSRF 风险
2) XSS 输出防护(XSS/CFG)
必须定位并输出:
- CI 的 XSS 过滤器是否启用(如
、global_xss_filtering
等)Security::xss_clean - 视图层是否对用户输入做了正确
或等价转义html_escape
判定规则:
- 如果禁用过滤或未转义输出,且用户输入能进入视图输出,则输出 XSS
3) 数据库查询拼接(SQL)
必须定位并输出:
- 原生查询:
或$this->db->query($sql)
的拼接证据->query($userInput) - 正确路径:Query Builder 与绑定参数使用
判定规则:
- 若存在用户输入进入 SQL 字符串拼接,输出 SQL 风险
4) 会话与 Cookie(SESS/CFG)
必须定位并输出:
- cookie flags:HttpOnly/Secure/SameSite(如在项目中配置)
- session 配置:会话超时、固定防护(如存在)
5) 鉴权与访问控制(AUTH)
必须定位并输出:
- 控制器中访问保护模式:自定义
helper、基类 controller 的校验、过滤器auth - 路由层过滤器或中间件(CI 4 filters)
判定规则:
- 若敏感控制器或方法缺少统一鉴权,输出 AUTH 风险
可观测 PoC(必做:框架特效可观测验证框架)
至少给出以下两类其一并写清观察点:
- CSRF:缺失 CSRF token 调用状态变更路由,观察是否成功与副作用
- SQL:使用注入 payload 调用疑似拼接 SQL 路径,观察返回差异或错误回显
输出完整性检查(强制)
- 输出包含:CSRF/XSS/SQL/Session/Auth 的检查结果
- 每条风险都有:映射类型码 + 位置证据 + 可观测验证框架 + 修复建议