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 图片语法
```

```
标签:Docker, ffuf, OpenVAS, PHP, 安全防御评估, 安全靶场, 漏洞演练平台, 版权保护, 请求拦截, 逆向工具