【juice-shop】★★★★ Access Log:通过目录扫描获取服务器访问日志
0x01 任务简报
🎯 挑战目标获取访问服务器上任何访问日志文件的权限。
💡 官方提示 (Hints)1. 谁想要通过web应用程序访问服务器访问日志?
2. 通常情况下,服务器日志文件被写入服务器端的磁盘,不能从外部访问。
3. 您在"访问机密文档"挑战中可能已经发现的文件夹中的一个特定文件可能会让您知道谁对这种公开暴露感兴趣。
4. 深入文件系统一层可能还不够。
0x02 线索分析
提示解读
| 提示 | 含义 | 推论 |
|---|---|---|
| 提示1 | 谁想要访问日志? | support 用户 (支持团队) |
| 提示2 | 日志在服务器磁盘,不能外部访问 | 需要通过应用暴露的接口访问 |
| 提示3 | “访问机密文档"中发现的文件夹 | /ftp/ 路径,可能有线索文件 |
| 提示4 | 深入一层不够 | 不是 /logs,而是 /FUZZ/logs 模式 |
关键发现
|
|
0x03 解题过程
步骤1:理解挑战本质
我的问题分析:
- ❌ 不需要完成 6 星挑战 “Login Support Team”(虽然有关联)
- ✅ 这是一个 4 星难度的目录扫描挑战
- ✅ 关键在于理解提示,推断出正确的路径模式
核心洞察:
|
|
步骤2:构建 ffuf 扫描命令
反向扫描策略:
不是扫描 /FUZZ,而是扫描 /FUZZ/logs,这样可以:
- 直接找到包含日志的目录
- 减少噪音(SPA 默认页面)
- 提高效率
扫描命令:
|
|
参数说明:
| 参数 | 说明 |
|---|---|
-u |
目标 URL,FUZZ 为占位符 |
-w |
字典文件(dirb/common.txt) |
-o |
输出文件名 |
-of csv |
输出格式为 CSV |
步骤3:分析扫描结果
筛选条件:
|
|
原因:
status_code = 200且content_length = 75002= SPA 默认页面(无效)- 排除这些结果,找到真实的日志路径
扫描结果示例:

![]()
关键发现:
|
|
步骤4:访问日志文件
URL:
|
|
操作:
- 在浏览器中访问上述 URL
- 下载日志文件
- 完成挑战

0x04 深度思考
为什么这个方法有效?
1. 理解 SPA 应用的特性
|
|
2. 浏览器 vs 扫描工具的区别
| 特性 | 浏览器 | ffuf |
|---|---|---|
| JavaScript 执行 | ✅ | ❌ |
| DOM 渲染 | ✅ | ❌ |
| 错误日志 | ✅ 显示在 Console | ❌ 无法看到 |
| 响应内容 | ✅ 完整 | ✅ 原始 HTML |
3. 为什么不需要 “Login Support Team”?
- ✅
/support/logs路径不需要认证即可访问 - ✅ 这是一个配置错误(Security Misconfiguration)
- ✅ 支持团队的凭据只在其他挑战中需要
可观测性故障的真正解法
虽然不是必需的,但以下方法可以增强推论:
方法1:浏览器 Console 错误
|
|
方法2:检查 Location Header
|
|
方法3:对比响应内容
|
|
0x05 总结
关键要点
| 要点 | 说明 |
|---|---|
| 解题思路 | 大胆猜想,小心求证 |
| 核心技巧 | 反向扫描 /FUZZ/logs 而不是 /FUZZ |
| 关键发现 | /support/logs 路径无需认证即可访问 |
| 漏洞类型 | Security Misconfiguration(安全配置错误) |
| 前置条件 | 无(不需要完成 6 星挑战) |
参考
附录:完整命令参考
ffuf 扫描命令
|
|
curl 验证命令
|
|