文件泄露
敏感信息泄露
分为:
源代码泄露
- 1、git源码泄露
- 2、SVN源码泄露
- 3、hg源码泄露
- 4、CVS泄露
- 5、Bazaar/bzr泄露
- 6、网站备份文件泄露
- 7、WEB-INF/web.xml泄露
- 8、DS_Store 文件泄露
- 9、SWP 文件泄露
- 10、GitHub源码泄漏
- 二、服务器导致的泄露
- 三、组件未授权访问
- 1.Druid未授权访问
- 2.redis未授权访问或者弱口令情况
- 3、MongoDB未授权访问
- 4、javaMelody
- 5、swagger扫描
- 6、kibana未授权访问
- 7、spring cloud
- 8、Elasticsearch未授权访问
- 9、Jenkis未授权访问
- 10、JBoss未授权访问
- 11、Hadoop
- 12、VNC未授权访问
- 13、docker未授权访问
- 14、Zookeper未授权访问
- 15、Rsync未授权访问
- 16、Active MQ 未授权访问
- 17、Dubbo 未授权访问
- 18、Jupyter Notebook 未授权访问
- 19、Kubernetes Api Server 未授权
- 20、Ldap未授权访问
- 21、Memcached 未授权访问
- 22、NFS未授权访问
- 23、RabbitMQ 未授权访问
- 24、sorl未经授权访问
- 25、Spark 未授权访问
- 26、weblogic未授权访问
- 27、Zabbix 未授权访问
- 28、CouchDB 未授权访问
- 四、云存储
git泄露
工具:Githack
泄露文件:.git目录
用法:Githack.py https://xxxx/.git
SVN 泄露
.svn
工具: Seay SVN楼栋利用工具
Hg
.hg
工具:dvcs-ripper
用法:rip-hg.pl -v -u http://www.example.com/.hg/
CVS
C/S 系统
dvcs-ripper
/CVS/目录
Bazaar/bzr泄露
rip-bzr.pl -v -u http://www.example.com/.bzr/
其他文件泄露
最常见www.zip www.tar.gz
.rar
.zip
.7z
.tar.gz
.bak
.txt
.old
.temp
7.web-INF/web.xml
例题: [roarctf2019]easyjava
通过参数可控实现对敏感目录的任意文件下载
命名:
WEB-INF/web.xml : Web应用程序配置文件, 描述了servlet和其他的应用组件配置及命名规则.
WEB-INF/database.properties : 数据库配置文件
WEB-INF/classes/ : 一般用来存放Java类文件(.class)
WEB-INF/lib/ : 用来存放打包好的库(.jar)
WEB-INF/src/ : 用来放源代码(.asp和.php等)
8.Ds_Store
Mac 的东西
利用脚本
ds_store_exp.py http://hd.zj.qq.com/themes/galaxyw/.DS_Store
9.Swp文件泄露
linux 的vim 非正常退出干的临时文件,可以使用vim恢复
vim -r 文件名
10.GitHub源码泄漏
社工
一些小技巧
如果flag是动态通过靶机注入,未及时清除环境变量,则可能出现,在start.sh中可能会直接指定目录
系统级环境变量配置文件:
/etc/environment:系统范围的环境变量配置文件。如果注入脚本修改了这里,flag 会在此文件中明文存储。
/etc/profile, /etc/profile.d/*.sh:系统范围的 shell 启动脚本。如果在这些脚本中使用 export FLAG=... 设置变量,flag 会明文存储在这些文件中。
/etc/bash.bashrc (或类似名称,取决于 shell):系统范围的 bash 配置文件。同样,如果在这里设置了环境变量,flag 会残留。
用户级环境变量配置文件:
~/.profile, ~/.bash_profile, ~/.bash_login, ~/.zprofile (等,取决于 shell 和用户配置):用户登录时执行的配置文件。如果注入过程修改了这些文件(例如以某个用户身份运行),flag 会明文存储在这些文件中。
~/.bashrc, ~/.zshrc (等):用户启动非登录 shell 时执行的配置文件。同样,如果在这里设置了环境变量,flag 会残留。
服务/进程配置文件:
Systemd Service 文件 (/etc/systemd/system/*.service, /lib/systemd/system/*.service): 如果服务是通过 Environment= 或 EnvironmentFile= 指令设置的环境变量来获取 flag 的,那么:
flag 会明文出现在 .service 文件本身(如果使用 Environment=)。
或者会明文出现在 EnvironmentFile= 指向的文件中(通常是 /etc/default/<service> 或 /etc/sysconfig/<service>)。
其他服务管理器 (SysVinit, Upstart): 对应的服务配置文件(如 /etc/init.d/<script> 或 /etc/default/<service>)也可能包含 export FLAG=... 这样的语句。
特定应用配置文件: Web 服务器(如 Apache 的 .htaccess 或虚拟主机配置)、应用服务器、数据库连接池配置等,如果它们通过环境变量读取 flag 且配置被持久化,那么 flag 会出现在这些配置文件中。
日志文件:
系统日志: /var/log/syslog, /var/log/messages, /var/log/auth.log (或发行版特定的路径)。如果:
注入 flag 的命令本身被记录(如通过 sudo 执行)。
使用 flag 的应用程序将包含 flag 的环境变量名或值输出到日志(例如,错误日志中包含环境信息)。
系统服务启动日志记录了环境变量。
应用程序日志: 任何使用该环境变量的应用程序,如果在其日志中打印了环境变量(例如,调试日志、启动日志、错误信息),flag 就可能出现在其日志文件中。
Shell 历史记录: ~/.bash_history, ~/.zsh_history:如果用户通过命令行交互方式设置或使用了包含 flag 的环境变量(例如 export FLAG=... 或 some_command $FLAG),这些命令会被记录在 shell 历史文件中,导致 flag 明文泄露。
内存文件系统 (Procfs & Sysfs):
/proc/[pid]/environ:这个虚拟文件包含了当前正在运行的进程 [pid] 的所有环境变量(包括 flag),内容以 NUL 字符分隔。虽然进程退出后该文件消失,但如果注入 flag 后,有一个长时间运行的进程(如 Web Server, DB, 后台服务)继承了该环境变量,那么任何有权限读取 /proc/[pid]/environ 的用户都能看到 flag。这是最常见且最容易被忽视的残留位置。
临时文件 (Tmpfs):
/tmp, /var/tmp:如果注入 flag 的脚本或使用 flag 的应用程序将环境变量的值(例如 echo $FLAG > /tmp/debug.log)或包含环境变量的配置片段写入到了临时文件,并且没有正确清理,flag 就会残留在这类目录中。
Cron 任务:
/etc/crontab, /etc/cron.d/*, crontab -l 列出的用户 cron 任务:如果 cron 任务定义中直接使用了 FLAG=... 设置环境变量,或者在执行的命令中包含了 export FLAG=...,那么 flag 就会明文存储在 crontab 配置文件中。
二、服务器导致的泄露
1、Apache类泄露
样例文件泄露
/examples/servlets/servlet/CookieExample
/examples/servlets/servlet/RequestHeadersExample
/examples/jsp/snp/snoop.jsp
/examples/async/async1
2、IIS泄露
典型iis短文件名
https://github.com/lijiejie/IIS_shortname_Scanner
3、Tomcat泄露
tomcat后缀改为大写,会显示源码,只要把jsp文件后缀名改为大写即可

浙公网安备 33010602011771号