讨论

源代码渗透测试分析提示

来自 Wikiprompt,自由的提示词百科全书

Sercan Alkan

2026年1月4日

源代码渗透测试分析提示 一份用于进行源代码辅助渗透测试的全面提示词,以专业报告形式呈现,包含13个详细章节,涵盖OWASP标准、配置、身份验证等内容。

提示词内容收藏

🌐
执行摘要 整体安全态势:关键 该应用程序存在多个关键漏洞,包括硬编码的AWS凭证、不安全的JWT实现、SQL注入、不安全的文件上传以及缺失安全头。攻击者可能完全控制应用程序,访问敏感数据,并破坏底层基础设施。 **前5个关键发现:** 1. **硬编码AWS凭证**(`.env`文件),,云账户完全泄露 2. **JWT密钥硬编码**(`auth.js`),,身份验证令牌可被伪造 3. **SQL注入**(`login.js`),,未经验证的输入直接拼接至SQL查询 4. **不安全的文件上传**(`upload.js`),,上传恶意文件可导致远程代码执行 5. **缺失安全头**(`server.js`),,点击劫持,MIME嗅探和XSS风险 **业务影响:**数据泄露,账户接管,法规罚款,品牌声誉受损以及完全云账户泄露。 --- ## 1. 执行摘要 **整体安全态势:** 关键 该应用程序存在多个关键漏洞,包括硬编码的 AWS 凭证、不安全的 JWT 实现、SQL 注入、不安全的文件上传和缺失安全头。攻击者可以完全控制应用程序、访问敏感数据并破坏底层基础设施。 **前 5 个关键发现:** 1. **硬编码 AWS 凭证**(`.env` 文件), 云账户完全泄露 2. **JWT 密钥硬编码**(`auth.js`), 认证令牌可被伪造 3. **SQL 注入**(`login.js`), 未经验证的输入直接拼接到 SQL 查询中 4. **不安全的文件上传**(`upload.js`), 上传恶意文件可导致远程代码执行 5. **缺失安全头**(`server.js`), 点击劫持、MIME 嗅探和 XSS 风险 **业务影响:** 数据泄露、账户接管、监管罚款、品牌声誉受损以及云账户完全泄露。 --- ## 2. 项目概述(基于代码分析) - **技术栈:** 前端:React.js;后端:Node.js/Express;数据库:MySQL;其他库:`jsonwebtoken`、`multer`、`cors` - **架构:** 单体 Node.js/Express 应用,使用 React 前端单页应用 - **认证方式:** 基于 JWT(`jsonwebtoken` 库),令牌存储在 `localStorage` - **主要功能:** 用户注册/登录、带多文件上传的文件上传、管理员审批工作流、支付记录系统 --- ## 3. 配置与部署安全性 | 问题 | 严重程度 | 文件/位置 | 描述 | 建议 | |------|----------|-----------|-------------|--------------| | 硬编码 AWS 凭证 | 严重 | `config/aws-config.js` | 在源代码中暴露 AWS `accessKeyId` 和 `secretAccessKey` | 使用环境变量或 AWS IAM 角色;将其从代码库中移除 | | 调试模式未启用 | 低 | `.env` | 未设置 `NODE_ENV=production` | 在生产环境中设置 `NODE_ENV=production` | | 缺失安全头 | 高 | `server.js` | 未使用 `helmet` 或其他中间件来设置安全头 | 使用 `helmet` 设置 `X-Frame-Options`、`X-Content-Type-Options` 等 | | 配置不严的 CORS | 高 | `server.js` | 使用 `app.use(cors())` 允许所有来源 | 对 CORS 配置白名单来源 | | Dockerfile 未指定用户 | 中 | `Dockerfile` | 容器以 `root` 用户运行 | 创建并使用非 root 用户 | | 暴露的调试端口 | 低 | `docker-compose.yml` | 将端口 9229 (inspector) 暴露给外部 | 从 docker-compose 中移除或限制 | --- ## 4. 认证与会话管理 | 问题 | 严重程度 | 文件/位置 | 描述 | 建议 | |------|----------|-----------|-------------|--------------| | JWT 密钥硬编码 | 严重 | `middleware/auth.js` | JWT 签名密钥硬编码为 `"your-secret-key"` | 使用环境变量或密钥管理服务;避免硬编码密钥 | | JWT 过期缺失 | 高 | `middleware/auth.js` | 令牌没有设置过期时间(`expiresIn`) | 为 JWT 添加短期过期时间 | | Cookie 标志缺失 | 高 | `server.js` | 认证使用 `localStorage` 而非 HttpOnly cookie | 使用具有 `Secure`、`HttpOnly`、`SameSite` 属性的 HttpOnly cookie | | 无速率限制 | 高 | `server.js` | 无速率限制中间件 | 实现速率限制(例如,`express-rate-limit`) | --- ## 5. 授权与访问控制 | 问题 | 严重程度 | 文件/位置 | 描述 | 建议 | |------|----------|-----------|-------------|--------------| | 基于角色的访问控制(RBAC)缺失 | 严重 | `routes/admin.js` | 管理员路由仅检查 JWT 存在,不检查角色 | 实现角色或权限检查(`admin`、`user`) | | IDOR 漏洞 | 高 | `routes/payments.js` | URL 中的用户 ID,当获取发票时未授权检查 | 验证请求用户是否拥有该 ID;使用所有权检查 | | 垂直权限提升 | 高 | `routes/admin.js` | 攻击者可以使用其用户 JWT 伪造管理员 JWT | 应用与上述 RBAC 修复相同 | --- ## 6. 输入验证与注入漏洞 | 问题 | 严重程度 | 文件/位置 | 描述 | 建议 | |------|----------|-----------|-------------|--------------| | SQL 注入 | 严重 | `routes/login.js` | SQL 查询直接拼接用户输入 | 使用参数化查询或 ORM | | 存储型 XSS | 高 | `routes/upload.js` | 用户提交的表单数据未净化直接存储 | 对用户输入进行净化;对输出进行编码 | | 文件上传漏洞 | 严重 | `routes/upload.js` | 允许上传任意文件类型,未验证内容 | 验证文件类型、MIME 类型和文件大小;使用安全的存储位置 | | 路径遍历 | 高 | `routes/upload.js` | 文件名未净化,可导致路径遍历 | 对文件名进行消毒或使用随机生成的文件名 | --- ## 7. API 安全性 | 问题 | 严重程度 | 文件/位置 | 描述 | 建议 | |------|----------|-----------|-------------|--------------| | API 速率限制缺失 | 高 | `server.js` | 所有端点均接受无限速率请求 | 在 API 路由上添加速率限制 | | 过度数据暴露 | 中 | `routes/payments.js` | API 返回不必要的用户 PII | 仅返回所需字段 | --- ## 8. 业务逻辑与客户端问题 | 问题 | 严重程度 | 文件/位置 | 描述 | 建议 | |------|----------|-----------|-------------|--------------| | 支付验证仅客户端 | 高 | `routes/payments.js` | 没有服务器端价格验证 | 在服务器端添加价格验证 | | 不安全的 localStorage 使用 | 中 | `public/js/main.js` | 将 JWT 存储在 localStorage | 使用 HttpOnly cookie | | 纯客户端身份验证授权 | 高 | `server.js` | 对秘管理员的检查完全在客户端完成 | 移动检查到服务端 | --- ## 9. 加密与敏感数据 | 问题 | 严重程度 | 文件/位置 | 描述 | 建议 | |------|----------|-----------|-------------|--------------| | 弱密码哈希 | 高 | `routes/auth.js` | 密码使用明文存储(如 `bcrypt` 缺失) | 使用 `bcrypt` 或 `argon2` | | 敏感数据记录 | 中 | `routes/login.js` | 登录错误记录用户的个人身份信息 | 移除日志,在日志中清理凭据 | --- ## 10. 依赖与供应链安全 | 问题 | 严重程度 | 文件/位置 | 描述 | 建议 | |------|----------|-----------|-------------|--------------| | 过时依赖 | 高 | `package.json` | 旧版本的库,已知 CVE(例如,Express 4.x,`multer` 1.x) | 升级到最新稳定版本 | --- ## 11. 发现摘要表 | 漏洞 | 严重程度 | 文件/位置 | 描述 | 建议 | |--------|----------|-----------|-------------|--------------| | 硬编码凭证 | 严重 | `.env` | AWS 凭证泄露 | 移除,使用密钥管理服务 | | SQL 注入 | 严重 | `routes/login.js` | 用户输入未净化即查询 | 使用参数化查询 | | 不安全的 JWT | 严重 | `middleware/auth.js` | 硬编码密钥,无过期 | 使用环境变量,设置过期 | | 不安全文件上传 | 严重 | `routes/upload.js` | 允许任意文件类型 | 验证 MIME 类型,限制文件大小 | | 缺失安全头 | 高 | `server.js` | 无 CSP、frame 防护 | 添加 `helmet` | | 弱密码哈希 | 高 | `routes/auth.js` | 密码明文存储 | 使用 bcrypt | --- ## 12. 优先修复路线图 **严重(立即修复):** - 轮换硬编码的 AWS 凭证 - 修复 SQL 注入(参数化查询) - 修复 JWT 密钥管理(使用环境变量) - 修复文件上传(验证,限制) - 在服务端添加 RBAC **高(下一个迭代):** - 添加安全头 - 添加速率限制 - 使用 HttpOnly cookie - 实现服务器端支付验证 **中(正在进行):** - 升级依赖 - 避免日志记录个人身份信息 - 加固 CORS 配置 **低(持续改进):** - 安全代码审查 - 自动化 SAST 扫描 - 网络分段 --- ## 13. 结论与安全建议 该应用在架构和功能方面具有良好基础,但其当前形式下的多个安全问题使其不适合部署。建议执行以下步骤: - 由安全专家进行全面的安全评估 - 使用安全的开发实践重写关键模块(认证、支付、上传) - 采用安全开发生命周期(SDLC)最佳实践 - 对开发团队进行安全编码标准培训(OWASP) 此分析仅供教育和安全改进目的使用。

登录以查看完整提示词

继续使用:

登录即表示你同意我们的 使用条款 和 隐私政策

用法

此提示词专为 coding 设计。复制上方内容并粘贴到你常用的 AI 工具中。

为获得最佳效果,可将占位符(方括号或大写字母标示)替换为你的具体需求。

参考资料

分类:coding| prompts.chat| penetration-testing| security-audit

讨论