记一次较完整的渗透思路流程
字数 1811 2025-08-29 22:41:38
渗透测试实战教学:从登录框到系统权限获取
1. 渗透测试概述
本次渗透测试针对一个管理系统登录界面展开,展示了从初始信息收集到最终获取系统权限的完整流程。测试过程中运用了多种渗透技术,包括密码喷洒、目录遍历、历史漏洞利用、SQL注入等。
2. 初始信息收集与登录框测试
2.1 登录框常见渗透思路
针对管理系统登录框,渗透测试人员通常会考虑以下攻击向量:
- 暴力破解/密码喷洒:针对无验证码或弱验证机制的登录界面
- SQL注入:测试登录表单是否存在注入漏洞
- 源代码分析:检查前端代码泄露的敏感信息
- JS文件分析:查找隐藏接口或敏感信息
- 密码重置功能测试:寻找逻辑漏洞
- 配置漏洞利用:如目录遍历、任意文件读取等
- CMS框架漏洞:识别并利用已知CMS漏洞
- 敏感目录扫描:寻找隐藏的管理界面或测试页面
- Nday漏洞利用:应用已知但未修复的漏洞
- 端口扫描与服务利用:通过其他开放服务获取权限
- 登录逻辑漏洞:修改返回包绕过验证
2.2 实际测试过程
在本案例中,测试人员首先尝试了密码喷洒攻击,但由于密码强度较高未能成功。随后检查了前端源代码和JS文件,未发现可利用信息。
关键点:当常规方法无效时,需要转向其他攻击面。
3. 目录遍历漏洞发现与利用
3.1 发现过程
通过手动测试URL目录结构,发现存在目录遍历漏洞:
- 尝试删减目录层级,发现二级目录存在遍历漏洞
- 通过目录遍历发现了CKEditor编辑器
3.2 CKEditor历史漏洞尝试
测试人员识别出CKEditor编辑器并尝试利用其历史漏洞:
- 搜索确认该编辑器存在已知漏洞
- 尝试文件上传但失败(IIS 8.0环境限制)
注意:历史漏洞利用需要考虑环境兼容性,本例中因IIS版本限制未能成功。
4. 功能点测试与SQL注入发现
4.1 搜索框测试
发现一个简陋的搜索功能,测试SQL注入:
- 使用单引号测试,初步判断不存在注入
- 报错信息显示系统可能具备基本防护
4.2 添加功能测试
发现添加功能点,测试结果:
- 不存在SQL注入漏洞
- 不存在XSS漏洞
- 存在未授权访问问题(可添加、编辑、删除)
5. 目录扫描与测试环境发现
5.1 使用Dirsearch进行扫描
使用工具:Dirsearch (https://github.com/maurosoria/dirsearch)
命令语法:
python dirsearch.py -u "目标URL" -i 200,301,302
扫描结果:
- 普遍存在目录遍历漏洞
- 发现/test目录,内含与主站相同的管理界面
关键点:测试环境通常比生产环境安全性更低,是重要突破口。
6. SQL注入利用与系统权限获取
6.1 测试环境搜索框注入
在测试环境重复搜索框测试:
- 使用单引号触发明显报错
- 确认存在SQL注入漏洞
- 识别为ASP站点使用MS SQL数据库
6.2 注入类型确认
使用时间盲注测试:
WAITFOR DELAY '0:0:5'--
确认存在时间盲注漏洞。
6.3 使用SQLMap自动化测试
确认存在以下注入类型:
- 报错注入
- 时间盲注
- 堆叠注入
检查数据库权限:
python sqlmap.py -r "请求文件" --is-dba
确认当前用户为DBA权限。
6.4 获取系统权限
利用堆叠注入执行操作系统命令:
python sqlmap.py -r "请求文件" --os-shell
成功获取system权限。
7. 完整渗透流程总结
- 发现登录框 → 尝试密码喷洒 → 失败
- 分析源代码和JS → 无果
- 测试目录遍历 → 成功发现漏洞
- 发现CKEditor编辑器 → 尝试历史漏洞 → 失败
- 测试搜索框SQL注入 → 初步失败
- 扫描目录 → 发现测试环境
- 在测试环境测试搜索框 → 发现SQL注入
- 使用SQLMap确认注入类型 → 发现堆叠注入
- 利用DBA权限 → 获取os-shell → 拿到system权限
8. 经验与教训
- 坚持测试:当常规方法失败时,不要轻易放弃
- 全面测试:一个漏洞点的失败可能意味着其他漏洞的存在
- 环境差异:测试环境往往比生产环境更脆弱
- 工具组合:手工测试与自动化工具结合使用效果最佳
- 权限意识:数据库高权限往往意味着系统级风险
9. 防御建议
针对此类渗透测试,管理员应采取以下防护措施:
- 为登录界面添加验证码或限制机制
- 修复目录遍历漏洞
- 及时更新第三方组件(如CKEditor)
- 对用户输入进行严格过滤,防止SQL注入
- 数据库使用最小权限原则
- 移除或严格限制测试环境访问
- 实施WAF防护
- 定期进行安全审计和渗透测试
通过本案例,渗透测试人员可以学习到如何从看似坚固的系统表面找到突破口,并逐步深入获取系统权限的完整思路和方法。