文件泄露

敏感信息泄露

分为:

源代码泄露

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文件后缀名改为大写即可

posted @ 2025-07-09 10:10  swordreforge  阅读(34)  评论(0)    收藏  举报