在网站的使用过程中,往往需要对网站中的文件进行修改、升级。此时就需要对网站整站或者其中某一页面进行备份。当备份文件或者修改过程中的缓存文件因为各种原因而被留在网站 web 目录下,而该目录又没有设置访问权限时,便有可能导致备份文件或者编辑器的缓存文件被下载,导致敏感信息泄露,给服务器的安全埋下隐患。
该漏洞的成因主要有以下两种:
服务器管理员错误地将网站或者网页的备份文件放置到服务器 web 目录下
编辑器在使用过程中自动保存的备份文件或者临时文件因为各种原因没有被删除而保存在 web 目录下
漏洞检测:
该漏洞往往会导致服务器整站源代码或者部分页面的源代码被下载,利用。源代码中所包含的各类敏感信息,如服务器数据库连接信息,服务器配置信息等会因此而泄露,造成巨大的损失。被泄露的源代码还可能会被用于代码审计,进一步利用而对整个系统的安全埋下隐患。
在实战中,发现除了常见的备份所用的文件名称之外,还有很多与网站域名相关的命名方式,比如:
主域名+压缩包后缀
子域名+压缩包后缀
子域名替换点号为下划线+压缩包后缀
等
根据不同的操作系统,所涉及的压缩包后缀有所不同,比如:
Windows : 7z、rar、zip 等居多
Linux: tar、gz、tar.gz,tgz 等居多
通过这种特性可以提高备份文件发现的效率。后缀部分还有数据库相关的,比如:
db
sql
mdb
关于文件名部分,常见的比如与网站目录相关的名字:
web
wwwroot
root
data
www
html
backup
还有简略的单字母,与人类的懒惰有关,不想起复杂的名字而是以单字母数字代替,比如:
1
a
以上主要说的是网站备份文件,另外一部分备份是在修改源码文件时,为了方便恢复,将文件先复制到一个后缀为 bak 的文件中,然后对文件进行修改调试,结束时,并未对备份文件进行删除,从而导致漏洞的产生,通常关注的备份文件主要与网站配置相关的,比如:
config.php
web.config
而备份后缀,常见的比如:
bak
txt
old
这类文件中通常包含网站的敏感配置,比如数据库的地址、账号密码等信息。
针对以上各种功能的实现,我们来看一个开源工具 bfac:
https://github.com/mazen160/bfac
其功能包含了多种备份字典组合方式,比如:
1、由于编辑器修改文件所产生的后缀 2、文件复制存在时,由系统默认重命名格式 3、各种常见后缀组合 4、基于域名变换组合文件名 5、还有常见的源码泄漏的文件名
安装使用:
git clone https://github.com/mazen160/bfac
cd bfac/
python3 setup.py install
bfac
测试下效果,由于该工具的目标是针对用户输入的 url 包含文件名的情况下,去检测后该文件是否存在备份的情况,本身程序缺少根目录下完整网站备份的检测,测试如图:
效果一般,误报比较多,不过,作为安全从业者,要学会取其精华,去其糟粕,将其核心亮点保留,然后自己开发属于自己的小工具,也不是件难事儿,剩下的就靠大家了,项目中不少代码可以复用,改巴改巴将是一个不错的漏洞发现技巧。
信安之路三大内部工具介绍(成为VIP即可):
1、信安之路成长平台,通过将信息安全攻防技术分解成开放性任务,由浅入深学习安全攻防,同时锻炼自学能力,还有大量资料供学习参考,低成本入门信息安全必要之选。
2、信安之路攻防技术知识库,汇聚安全攻防技术体系、大量实战技术文档,海量历史漏洞细节,让知识武装头脑的同时,提高学习工作效率。
3、信安之路历史漏洞扫描器,随时随地,通过云端下载 POC,就算小白也能一键检测历史漏洞,快速发现已知威胁。