2021-07-09 CTFer成长之路-任意文件读取漏洞-文件读取漏洞常见读取路径

一:文件读取漏洞常见读取路径

Linux系统

1.flag名称(相对路径)比赛过程中,有时fuzz一下flag名称便可以得到答案。
2021-07-09 CTFer成长之路-任意文件读取漏洞-文件读取漏洞常见读取路径
2.服务器信息(绝对路径)

(1) /etc目录
/etc目录下多是各种应用或系统配置文件,所以其下的文件是进行文件读取的首要目标。

(2) /etc/passwd
/etc/passwd文件是Linux系统保存用户信息及其工作目录的文件,权限是所有用户/组可读,一般被用作Linux系统下文件读取漏洞存在性判断的基准。读到这个文件我们就可以知道系统存在哪些用户、他们所属的组是什么、工作目录是什么。

(3)/etc/shadow
/etc/shadow是Linux系统保存用户信息及(可能存在)密码(hash)的文件,权限是root用户可读写、shadow组可读。所以一般情况下,这个文件是不可读的。

(4)/etc/apache2/*
/etc/apache2/*是Apache配置文件,可以获知Web目录、服务端口等信息。CTF有些题目需要参赛者确认Web路径。

(5)/etc/nginx/*
/etc/nginx/*是Nginx配置文件(Ubuntu等系统),可以获知Web目录、服务端口等信息。

(6)/etc/apparmor(.d)/*
/etc/apparmor(.d)/*是Apparmor配置文件,可以获知各应用系统调用的白名单、黑名单。例如,通过读配置文件查看MySQL是否禁止了系统调用,从而确定是否可以使用UDF(User Defined Functions)执行系统命令。

(7)/etc/(cron.d/|crontab)
/etc/(cron.d/
|crontab)是定时任务文件。有些CTF题目会设置一些定时任务,读取这些配置文件就可以发现隐藏的目录或其他文件。

(8)/etc/environment
/etc/environment是环境变量配置文件之一。环境变量可能存在大量目录信息的泄露,甚至可能出现secret key泄露的情况。

(9)/etc/hostname/etc/hostname表示主机名。
/etc/hostname表示主机名。

(10)/etc/hosts
/etc/hosts是主机名查询静态表,包含指定域名解析IP的成对信息。通过这个文件,参赛者可以探测网卡信息和内网IP/域名。

(11)/etc/issue
/etc/issue指明系统版本。

(12)/etc/mysql/*
/etc/mysql/*是MySQL配置文件。

(13)/etc/php/*
/etc/php/*是PHP配置文件。

(14)/proc目录
/proc目录通常存储着进程动态运行的各种信息,本质上是一种虚拟目录。注意:如果查看非当前进程的信息,pid是可以进行暴力破解的,如果要查看当前进程,只需/proc/self/代替/proc/[pid]/即可。
对应目录下的cmdline可读出比较敏感的信息,如使用mysql-uxxx-pxxxx登录MySQL,会在cmdline中显示明文密码:

/proc/[pid]/cmdline

有时我们无法获取当前应用所在的目录,通过cwd命令可以直接跳转到当前目录:

/proc/[pid]/cmd/

环境变量中可能存在secret_key,这时也可以通过environ进行读取:

/proc/[pid]/environ

(14)其他目录

Nginx配置文件可能存在其他路径:

/usr/local/nginx/conf/*

日志文件:

/var.log/*

Apache默认Web根目录:

/var/www/html

PHP session目录:

/var/lib/php(5)/session/

用户目录:
2021-07-09 CTFer成长之路-任意文件读取漏洞-文件读取漏洞常见读取路径
[pid]指向进程所对应的可执行文件。有时我们想读取当前应用的可执行文件再进行分析,但在实际利用时可能存在一些安全措施阻止我们去读可执行文件,这时可以尝试读取/proc/self/exe。例如:2021-07-09 CTFer成长之路-任意文件读取漏洞-文件读取漏洞常见读取路径

上一篇:Linux_查看系统cpu个数、核心数、线程数


下一篇:python--安卓端APP:性能测试(cpu使用)