当前位置: 首页 > news >正文

揭秘Mobile Me数据挖掘:从WebDAV探测到隐藏文件发现

我最近发布了Bucket Finder脚本,Darren在Hak5节目中进行了专题报道。有反馈指出Mobile Me采用相同机制,用户可通过https://public.me.com/<账户名>格式URL访问公开账户。考虑到Mobile Me存储的是个人而非商业数据,且与桌面端同步,我认为这将带来丰富的数据收获。由于Mobile Me已停止新用户注册,所有分析均基于现有数据。

在发现一个包含多个公开文件的账户后,我开始分析源代码。首先注意到页面上显示的文件均未在源码中出现,推测需要通过AJAX调用获取文件列表。使用Firebug捕获到以下返回数据的URL:

https://public.me.com/ix/XXXX?protocol=roap&item=properties&repfmt=swjson&depth=1&reqid=1234566778888&lang=en

该URL返回JSON格式的目录列表。虽然可以处理JSON,但更倾向于使用XML(已有解析框架)。通过调整查询参数发现:删除reqid和lang字段无影响;depth设为2可获取两级目录,但≥3会报错;最关键的是删除repfmt字段后,数据奇迹般变为XML格式。最终得到优化URL:

https://public.me.com/ix/XXXX?protocol=roap&item=properties&depth=1

返回的XML示例如下(精简显示文件和目录结构):

<?xml version="1.0" encoding="utf-8" ?>
<multistatus xmlns="DAV:"><D:response xmlns:D="DAV:"><D:href>/ix/hank/</D:href><D:propstat><D:prop><D:resourcetype><D:collection/></D:resourcetype></D:prop><D:status>HTTP/1.1 200 OK</D:status></D:propstat></D:response><D:response xmlns:D="DAV:"><D:href>/ix/XXXX/file.mp4</D:href><D:propstat><D:prop><D:getcontentlength>118727222</D:getcontentlength></D:prop></D:propstat></D:response>
</multistatus>

这显然是WebDAV协议。选择解析XML而非学习WebDAV库:若D:resourcetype包含D:collection则为目录,否则为文件。对文件记录URL及相关信息,对目录则递归访问。

但初步测试发现:浏览器通过JSON获取时包含以点开头的隐藏文件/目录(如OS X回收站.Trashes),而脚本输出却缺失该目录。最初怀疑是JSON与WebDAV差异,但切换回JSON仍不显示隐藏项。通过Burp代理对比请求,最终发现关键差异:用户代理字符串。使用Ruby默认UA时无隐藏文件,切换为Firefox UA后则出现。

尽管Web界面会隐藏这些文件(即使被返回),但垃圾桶目录至关重要——用户可能将文件放入公开文件夹后删除,却不知仍可从垃圾桶恢复。其他如.DSStore文件也可能包含有用信息。

最终开发了Me Finder脚本(可从项目页面下载),并像处理Bucket Finder一样使用词表进行分析(详见《Analyzing Mobile Me》)。


更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码

http://www.wxhsa.cn/company.asp?id=6023

相关文章:

  • 25/9/14(补)
  • 【IEEE出版、往届会后4个月EI检索】第二届计算机视觉、图像处理与计算摄影国际学术会议(CVIP 2025)
  • 洛谷 P10936 导弹防御塔 题解
  • P13694 [CEOI 2025] Splits 题解
  • VSCode + Python 开发踩坑:虚拟环境不在项目根目录导致包无法识别该怎么办
  • 图像与视频编码
  • Python爬虫实战:研究Pandas,构建地理信息资料采集和分析便捷的系统
  • 初赛复习
  • 用户帐户控制(UAC)
  • fg/bg/jobs/kill命令--linux
  • 【OC】单例模式 - 教程
  • ios电脑系统和windows系统
  • HCIP-VRRP
  • JSON Schema 校验是什么?面试时怎么说?
  • 【征文启动】IvorySQL PostgreSQL 迁移实战经验征集:分享你的技术沉淀,赢取专属好礼!
  • MCP的天气预报的使用
  • 6款超好用的AI换脸软件,一键视频直播换脸(附下载链接)
  • lc1029-两地调度
  • pyAutoGUI 模块主要效果介绍-(2)键盘功能
  • (简记)时间复杂度分析 $\Omicron,\Theta,\Omega$ 的区别
  • Java的运算符
  • 2025年最强API安全解决方案:以智能风险监测重塑企业数据防护体系
  • HTML打包EXE工具中的WebView2内核更新指南
  • Javadoc生成文档方法
  • HTML一键打包EXE工具中使用Websocket
  • KUKA程序中DEF 与 DEFFCT 的区别
  • 第一天作业
  • EXE一机一码打包加密大师 - 打包加壳原理
  • 力扣62题 不同路径
  • 八皇后问题