用途:针对 Serverless/云函数场景的授权安全测试与攻击方法论。Serverless 函数运行在短暂容器中,传统持久化与横向移动思路不适用,攻击重点是事件注入、凭据提取与代码注入。资料涉及 AWS Lambda、腾讯云 SCF、阿里云 FC、Azure Functions,以及 API Gateway 后端为 Lambda/SCF 触发的情况。
主要阶段:Phase 0 通用信息收集,枚举函数列表并获取代码、配置与环境变量;具体命令见对应 reference(AWS Lambda 见 references/lambda-techniques.md,腾讯云 SCF 见 references/scf-techniques.md)。Phase 1 从环境变量提取凭据,常见敏感变量如 DB_PASSWORD、DATABASE_URL、MONGODB_URI、AWS_ACCESS_KEY_ID、TENCENTCLOUD_SECRET_ID、SECRET_KEY、JWT_SECRET、API_KEY、REDIS_URL、SMTP_PASSWORD。Phase 2 审计函数代码,搜索硬编码凭据与不安全输入处理,如 eval、exec、os.system、subprocess、pickle、yaml.load、SQL 拼接,并检查 requirements.txt 或 package.json 依赖版本。
Phase 3 事件注入:函数由事件触发,事件数据即输入,未正确校验即可注入。API Gateway 封装 HTTP 请求为事件,注入点包括 queryStringParameters(SQL/NoSQL 注入)、body(反序列化或命令注入)、headers(SSRF/日志注入)、pathParameters(路径遍历);OSS/COS/S3 触发器将对象信息作为事件,若用 event key 拼接文件路径可致路径遍历,处理上传文件可致 XXE/SSRF/命令注入;SQS/CMQ/Kafka 等消息队列触发器可将恶意内容作为事件传入。
Phase 4 代码注入/覆盖:需要 UpdateFunctionCode 权限,用恶意代码替换函数并植入后门,同时保留原始功能;Layer 劫持为 AWS Lambda 特有,修改共享 Layer 可影响所有使用它的函数。Phase 5 Runtime 环境利用:/tmp 是唯一可写目录且热启动时保留,可下载工具并利用函数内网访问权限扫描。资料还提供决策树,按权限(GetFunction、GetFunctionConfiguration、UpdateFunctionCode、Invoke)与仅有 API Gateway 入口等情况选择路径。
使用方式与限制:需先识别云平台,再加载对应 reference 获取完整命令;资料中的命令与代码片段应保持原样。其余具体工具安装方式、依赖、收费与效果暂未提供。仅限合法授权测试。