记一次目录遍历带来的惊喜
字数 1021 2025-08-05 12:50:26
目录遍历漏洞利用实战教学
漏洞发现背景
在一次对教育在线云播网站的安全测试中,通过系统性的渗透测试流程发现并利用了一个目录遍历漏洞,最终获取系统权限。以下是详细的漏洞发现和利用过程。
初始信息收集
- 目标识别:教育类型的在线云播网站
- 初步测试:
- 常规漏洞测试无果
- 发现密码加密传输
- 转向弱口令测试
弱口令爆破阶段
-
测试思路:
- 通过FOFA搜索同类型站点爆破账户
- 直接爆破用户名弱口令
-
实施过程:
- 尝试常见账户(admin, root, administrator, system)无果
- 成功爆破出"teacher"账户
- 发现返回包中无session参数,存在登录绕过可能
-
登录绕过验证:
- 在另一站点随意输入账户密码抓包
- 替换为teacher账户的response成功绕过登录
权限提升尝试
-
限制:
- teacher账户权限有限
- 未找到管理员账户
-
转向文件上传测试:
- 发现多处上传点
- 测试文件上传过滤机制:
- 尝试.as后缀上传成功
- 尝试.aspx、.asp、.ashx、.asmx等后缀被拦截
- 初步判断为虚假上传点
目录遍历漏洞发现
- 使用御剑扫描工具发现目录遍历漏洞
- 验证过程:
- 寻找源码和配置文件未果
- 在同类型站点验证无此漏洞
- 确认是管理员配置失误导致
文件上传漏洞深入利用
-
发现测试上传页面:
- 功能正常访问
- 无后缀过滤
-
获取上传路径技巧:
- 利用Windows系统命令规则
- 在文件名中添加非法字符触发系统报错
- 从错误信息中获取完整路径
-
文件名规则分析:
文件名结构:原始文件名 + ASP.NET_SessionId + 后缀 示例:1a3xisnmccnjmchodbzzcyk15.asp
最终利用过程
-
上传webshell遇到403问题:
- 尝试php, asp, asmx, ashx, cshtml等后缀
- 使用哥斯拉马无效
- 判断upload目录无执行权限
-
目录穿越利用:
- 构造特殊文件名触发目录穿越
- 成功跳转到有执行权限的目录
- 上传webshell并拼接路径访问
技术要点总结
-
关键发现路径:
弱口令爆破 → 登录绕过 → 文件上传测试 → 目录遍历发现 → 路径泄露 → 目录穿越 → getshell -
重要技巧:
- 通过系统报错获取路径信息
- 分析文件名生成规则
- 结合Windows系统特性进行利用
- 目录穿越绕过上传限制
防御建议
-
对上传功能:
- 实施严格的文件类型检查
- 限制上传目录的执行权限
- 使用随机文件名并隐藏真实路径
-
对目录遍历:
- 禁用目录列表功能
- 实施严格的路径访问控制
- 对用户输入进行规范化处理
-
其他:
- 实施完善的会话管理
- 加强密码策略防止弱口令
- 对错误信息进行统一处理,避免泄露系统信息
后续行动
- 已提交相关漏洞至安全平台
- 建议进行全面的安全审计
- 检查同类型系统的类似配置问题