amiruafiq/PenTest-AlternateAssessment

GitHub: amiruafiq/PenTest-AlternateAssessment

一个包含预设漏洞的学生管理系统渗透测试实验室,用于安全课程的替代评估与实操练习。

Stars: 0 | Forks: 0

# UniSMS 渗透测试项目笔记 ## 项目概述 **项目名称:** UniSMS **类型:** 包含漏洞的学生管理系统门户 / 渗透测试实验室 **源码位置:** `unisms/unisms` **主要访问 URL:** `http://:8888/login.php` **开始日期:** `YYYY-MM-DD` **测试人员:** `您的名字` ### 目标 记录 UniSMS 评估的设置、架构、发现、攻击路径、证据和最终结论。 ## 环境详情 ### 宿主系统 | 项目 | 值 | |------|-------| | 主机名 | ` ` | | 操作系统 | ` ` | | Docker 版本 | ` ` | | Docker Compose 版本 | ` ` | | 本地 IP | ` ` | | 测试日期 | ` ` | ### 技术栈状态 | 服务 | 容器名称 | 用途 | 状态 | 端口 | |---------|----------------|---------|--------|------| | Web | `unisms_web` | PHP Web 应用 | ` ` | `8888 -> 80` | | DB | `unisms_db` | MySQL 5.7 数据库 | ` ` | 内部 | | Bot | `unisms_bot` | 管理员自动化 bot | ` ` | 内部 | ## 文件夹结构 ``` unisms/ ├── apache-vhost.conf ├── bot/ ├── db/ ├── docker-compose.yml ├── Dockerfile ├── flags/ ├── php.ini └── src/ ``` ### 文件夹说明 | 路径 | 用途 | 说明 | |------|---------|-------| | `src/` | 主要 PHP 应用 | 包含登录、个人资料、反馈、搜索、成绩等页面 | | `db/` | 数据库初始化 | 可能包含 schema 和种子数据 | | `bot/` | 管理 bot 服务 | 可能模拟管理员审查行为 | | `flags/` | 实验室挑战文件 | 可能用于评估目标 | | `Dockerfile` | Web 构建定义 | 构建 PHP/Apache 应用 | | `docker-compose.yml` | 多容器编排 | 定义 web、db 和 bot | ## 部署步骤 ### Docker CLI ``` cd /home/afiq/PenTest-AlternateAssessment/unisms/unisms docker compose up -d --build docker compose ps ``` ### 验证 - [ ] `unisms_web` 已启动 - [ ] `unisms_db` 运行正常 - [ ] `unisms_bot` 已启动 - [ ] 浏览器中可加载登录页面 ### 访问详情 - 登录页面:`http://:8888/login.php` - 备用端口(如已更改):`http://:/login.php` ## 架构概述 用您自己的话描述该应用。 示例: - **web** 容器托管 PHP 学生门户。 - **db** 容器在 MySQL 中存储应用数据。 - **bot** 容器似乎用于自动化管理员行为,这可能会创建存储型 XSS 或管理员交互的攻击路径。 ## 发现的应用页面 | 页面 | 用途 | 是否需要身份验证 | 说明 | |------|---------|-----------------------|-------| | `login.php` | 用户身份验证 | 否 | 入口点 | | `profile.php` | 查看/编辑用户资料 | 是 | 检查访问控制 | | `modules.php` | 查看模块 | 是 | 检查 IDOR / 数据暴露 | | `grades.php` | 查看成绩 | 是 | 检查授权和 SQLi | | `timetable.php` | 查看日程安排 | 是 | 检查用户数据边界 | | `search.php` | 搜索功能 | 是/未知 | 检查输入过滤 | | `feedback.php` | 提交反馈 | 是 | 检查存储型 XSS 和验证 | | `about.php` | 静态信息 | 未知 | 低优先级 | | `contact.php` | 静态/联系页面 | 未知 | 低优先级 | | `help.php` | 帮助页面 | 未知 | 低优先级 | | `welcome.php` | 落地/登录后页面 | 是/未知 | 常规流程页面 | ## 测试方法论 ### 阶段 1:枚举 - [ ] 识别所有可访问的页面 - [ ] 创建用户角色映射 - [ ] 检查 cookie 和 header - [ ] 检查 HTML 表单和参数 - [ ] 映射所有 GET 和 POST 输入 ### 阶段 2:代码审查 - [ ] 审查 `docker-compose.yml` - [ ] 审查根目录 `Dockerfile` - [ ] 审查 `db/init.sql` - [ ] 审查 `bot/admin_bot.py` - [ ] 审查高风险 PHP 文件:`feedback.php`、`search.php`、`profile.php`、身份验证/会话文件 ### 阶段 3:Web 测试 - [ ] 身份验证绕过 - [ ] SQL 注入 - [ ] 存储型 XSS - [ ] 反射型 XSS - [ ] IDOR / 访问控制失效 - [ ] CSRF - [ ] 文件/路径问题 - [ ] 敏感数据暴露 - [ ] 会话弱点 ### 阶段 4:漏洞利用验证 - [ ] 确认可利用性 - [ ] 记录证据 - [ ] 截取屏幕截图 - [ ] 记录使用的精确 payload - [ ] 评估影响 ## 发现记录 每个发现使用一个单独的章节。 ## 发现 1:`在此填写标题` ### 概述 问题的简短描述。 ### 受影响组件 - 文件/页面:` ` - 参数:` ` - 方法:`GET / POST / 其他` ### 严重程度 `严重 / 高 / 中 / 低 / 信息` ### CWE / 分类 - CWE:` ` - OWASP 分类:` ` ### 复现步骤 1. 前往 ` ` 2. 提交 ` ` 3. 观察 ` ` ### 使用的 Payload / 请求 ``` GET /example HTTP/1.1 Host: target ``` 或 ``` ``` ### 证据 在此章节下方插入截图。 **截图 1 – 描述** **截图 2 – 描述** ### 影响 解释攻击者可以做什么。 ### 根本原因 解释代码或设计中存在此问题的原因。 ### 修复建议 - 验证输入。 - 对输出进行编码。 - 实施服务端授权。 - 使用 CSRF 防护。 - 应用最小权限原则。 ### 状态 - [ ] 未验证 - [ ] 已验证 - [ ] 修复后已重新测试 ## 截图索引 将截图存放在此 README 旁边的 `images/` 文件夹中。 | 文件 | 显示内容 | |------|----------------| | `images/stack-up.png` | Docker 容器运行中 | | `images/login-page.png` | UniSMS 登录页面 | | `images/finding-01.png` | 第一个漏洞证据 | | `images/finding-02.png` | 第二个漏洞证据 | ## 实用命令 ### Docker ``` docker compose up -d --build docker compose ps docker compose logs -f docker compose down ``` ### 基础 Web 测试 ``` curl -i http://:8888/ curl -i http://:8888/login.php ``` ### 可选枚举工具 ``` nikto -h http://:8888 gobuster dir -u http://:8888 -w /usr/share/wordlists/dirb/common.txt ``` ## 凭据和测试账号 | 账号 | 用户名 | 密码 | 来源 | 说明 | |---------|----------|----------|--------|-------| | 管理员 | `admin` | `letmein` | Compose / bot 配置 | 确认在 UI 中是否有效 | | 用户 | ` ` | ` ` | `db/init.sql` 或应用测试 | 验证后填写 | ## 攻击路径说明 ### 可能路径 1:通过反馈进行存储型 XSS - 入口点:`feedback.php` - 触发条件:管理员或 bot 审查提交的内容 - 目标:窃取会话、执行管理员操作或获取受保护的内容 ### 可能路径 2:搜索或个人资料滥用 - 入口点:`search.php` 或 `profile.php` - 检查项:SQL 注入、反射型 XSS、授权失效 ### 可能路径 3:数据库或种子数据弱点 - 入口点:`db/init.sql` - 检查项:弱凭据、明文敏感信息、预设 flag、信任假设 ## 证据核对清单 - [ ] 运行中容器的截图 - [ ] 登录页面的截图 - [ ] 每个受影响页面的截图 - [ ] 成功提交 payload 的截图 - [ ] 漏洞利用结果的截图 - [ ] 相关日志的截图(如有) - [ ] 恶意请求/响应的副本 ## 最终评估总结 ### 已确认的发现 | ID | 标题 | 严重程度 | 状态 | |----|-------|----------|--------| | F-01 | ` ` | ` ` | ` ` | | F-02 | ` ` | ` ` | ` ` | | F-03 | ` ` | ` ` | ` ` | ### 总体风险 编写 1 到 2 个段落,总结主要弱点及可能的业务影响。 ### 建议优先级 1. 首先修复最高风险的问题。 2. 强化身份验证和授权。 3. 增加输入验证和输出编码。 4. 审查管理 bot 的信任假设。 5. 从部署文件中移除硬编码的敏感信息。 ## 附录 ### 说明 在此处添加原始记录、复制的请求、代码片段和观察结果。 ### 图片放置示例 在此 README 旁边创建一个 `images/` 文件夹: ``` unisms/ ├── README.md └── images/ ├── login-page.png ├── stack-up.png └── finding-01.png ``` ### Markdown 图片语法 ``` ![Login page](https://raw.githubusercontent.com/amiruafiq/PenTest-AlternateAssessment/main/images/login-page.png) ```
标签:Docker, ffuf, OpenVAS, PHP, 安全防御评估, 安全靶场, 漏洞演练平台, 版权保护, 请求拦截, 逆向工具