让文件读取漏洞与shell环环相扣
字数 1421 2025-08-15 21:33:00
文件读取漏洞与Shell获取的深度利用教学
1. 漏洞背景与概述
本案例展示了如何通过XXE(XML External Entity)文件读取漏洞,结合系统管理员的不良操作习惯,最终获取系统Shell的完整过程。这种攻击链展示了漏洞利用的深度思维,从信息收集到权限提升的完整路径。
2. 关键漏洞点
2.1 XXE漏洞
- 漏洞类型:回显型XXE(XML External Entity Injection)
- 位置:系统登录后的统一参数入口接口
- 特点:系统解析XML中的方法后执行相应逻辑
- 利用方式:通过构造恶意XML实体读取系统文件
2.2 文件读取漏洞利用
- 敏感文件探测:
/etc/passwd/etc/shadow- 用户桌面文件(如
~/Desktop/pwd.txt) - 系统配置文件
3. 攻击步骤详解
3.1 初始信息收集
- 服务扫描:发现开放端口21(FTP)、80/443(HTTP/HTTPS)、3389(RDP)、6379(Redis)、8080/8085/8086(HTTP)
- 账号密码收集:通过读取管理员桌面文件获取6组凭证
3.2 凭证爆破尝试
- RDP(3389):失败
- FTP(21):失败
- Redis(6379):失败
- HTTP服务:尝试已知管理后台路径
3.3 关键突破点
-
识别特殊服务:
- 8085端口:treeDMS(文档管理系统)
- 8086端口:treeNMS(网络管理系统)
-
使用收集的凭证:
- 成功登录treeNMS(但系统为空)
- 成功登录treeDMS(发现三个账户,密码为MD5存储)
-
密码破解:
- 通过反查MD5破解两个账户密码
3.4 获取Shell
-
文件上传漏洞:
- 后台"图标设置"模块存在无限制文件上传
- 上传Web Shell(如.jsp、.php等)
-
权限维持:
- 通过Web Shell进行进一步渗透
- 横向移动至其他系统
4. 技术要点解析
4.1 XXE利用技巧
<!-- 基本XXE payload示例 -->
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<foo>&xxe;</foo>
4.2 敏感文件路径
-
Windows系统:
C:\Users\[用户名]\Desktop\*C:\Windows\System32\config\SAMC:\inetpub\wwwroot\web.config
-
Linux系统:
/home/[用户名]/Desktop/*/etc/passwd/etc/shadow/var/www/html/*
4.3 服务识别技巧
- 使用
nmap -sV进行服务版本探测 - 非常见端口服务识别:
- 8085/8086:treeNMS/treeDMS
- 8080:常见Web管理界面
- 6379:Redis
5. 防御措施
5.1 防止XXE攻击
- 禁用XML外部实体处理
- 使用安全的XML解析器配置
- 实施输入验证和过滤
5.2 防止敏感信息泄露
- 禁止在桌面存储凭证文件
- 实施严格的权限控制
- 定期清理临时文件
5.3 系统加固
- 修改默认服务端口
- 禁用不必要的服务
- 实施强密码策略
- 限制管理后台访问IP
6. 思维拓展
- 漏洞链思维:单个漏洞可能价值有限,但组合利用可产生更大影响
- 信息关联:将不同来源的信息(如端口、凭证、服务)关联分析
- 突破常规:考虑非常规攻击路径(如通过管理桌面文件获取凭证)
- 持续渗透:获取初步权限后应继续深入探测
本案例展示了从简单的文件读取漏洞到最终获取系统Shell的完整路径,强调了渗透测试中思维广度和技术深度的重要性。