用途:该技能面向路径遍历漏洞(CWE-22,严重级别高),用于在编写或审查涉及文件路径、文件读写的代码时识别并防范目录穿越问题。攻击者通过操纵文件路径中的用户输入,利用 ../ 等序列跳出预期目录,读取或写入 /etc/passwd、源码或凭据等文件。
主要能力:说明反模式(将用户输入直接拼接进文件路径而不校验目录穿越字符),并给出不安全与安全代码示例;提供检测思路,包括追踪用户可控输入、查找路径拼接函数(如 os.path.join、字符串 +)、检查是否缺少校验、确认是否对最终路径做规范化并验证仍在基准目录内;给出预防要点。
使用方式:在生成或审查文件路径相关代码时应用。预防措施包括:不信任用户输入;使用已知良好文件名的严格白名单,否则禁止路径穿越序列;用 os.path.realpath()(Python)、File.getCanonicalPath()(Java)等规范化路径;规范化后确认路径以预期基准目录开头(最可靠的防护);改用 ID 或索引等间接引用,避免用户直接控制文件路径。注意简单搜索替换 ../ 不足以防御,可能被 ....// 等绕过。
适用场景:文件查看、上传、下载等涉及路径拼接的功能开发与代码审计。
限制:资料未提供该技能的具体安装命令、平台支持、收费或价格信息,暂未提供。