文件包含中几个常用包含目录的记录

超级水文

 Von's Blog     2020-09-02   4017 words    & views

写在前面

这几次的比赛中常常出现文件包含的相关考题。以前对文件包含的认知和实践只停留在直接包含或者伪协议上,这几次比赛中学到了很多,打算通过几篇文章总结一下。

用户信息

/etc/passwd         # 用来记录每个拥有系统访问权的注册用户
/etc/shadow         # 密码信息,获取到后可用 John the Ripper 爆破
/root/.bash_history # 输入命令的历史记录,还有root外的其他用户
/root/.ssh/id_rsa   # 拿到私钥后可直接ssh登陆

系统信息文件

/etc/hosts          # 主机信息
/proc/version       # 内核版本
/proc/mounts        # 挂载的文件系统列表
/root/.bashrc       # 环境变量信息
/proc/net/route     # 路由表信息
/proc/net/arp       # arp表,可以获得内网其他机器的地址
/root/.viminfo      # vim 信息

进程及程序相关信息

/proc目录

/proc目录起到一个类似于接口的作用,当我们使用cat命令获取时,它会从内存中获取信息,来返回给用户,而目录中的数字,其实就是PID号。

/proc/$PID/cmdline 启动进程时执行的命令
/proc/$PID/environ 该文件保存进程的环境变量
/proc/$PID/cwd 一个符号连接, 指向进程当前的工作目录
/proc/$PID/exe 一个符号连接, 指向被执行的二进制代码
/proc/self/fd/[num] 进程所打开的每个文件都有一个符号连接在该子目录里, 以文件描述符命名, 这个名字实际上是指向真正的文件的符号连接
/proc/$PID/attr 进程的属性

其中PID为进程状态[pid],可能包含有用的路径信息,可以为0000-9999,可以暴力枚举,但是我们通常我们在CTF中使用的是/proc/self/这个目录,其实/proc/self 是指向当前进程的内存。 所以我们一般使用的是

/proc/self/cmdline 启动进程时执行的命令
/proc/self/environ 该文件保存进程的环境变量
/proc/self/cwd 一个符号连接, 指向进程当前的工作目录
/proc/self/exe 一个符号连接, 指向被执行的二进制代码
/proc/self/fd/[0-99] 进程所打开的每个文件都有一个符号连接在该子目录里, 以文件描述符命名, 这个名字实际上是指向真正的文件的符号连接
/proc/self/attr 进程的属性

其中/proc/self/fd/[0-99]所带数字为0-99,同样可以使用枚举破解。所以关于进程及程序信息获取这部分,有一个Fuzz字典。

/proc/self/cmdline
/proc/self/stat
/proc/self/status
/proc/self/environ
/proc/verison
/proc/cmdline
/proc/self/cwd
/proc/self/fd/0
/proc/self/fd/1
/proc/self/fd/2
/proc/self/fd/3
/proc/self/fd/4
/proc/self/fd/5
/proc/self/fd/6
/proc/self/fd/7
/proc/self/fd/8
/proc/self/fd/9
/proc/self/fd/10
/proc/self/fd/11
/proc/self/fd/12
/proc/self/fd/13
/proc/self/fd/14
/proc/self/fd/15
/proc/self/fd/16
/proc/self/fd/17
/proc/self/fd/18
/proc/self/fd/19
/proc/self/fd/20
/proc/self/fd/21
/proc/self/fd/22
/proc/self/fd/23
/proc/self/fd/24
/proc/self/fd/25
/proc/self/fd/26
/proc/self/fd/27
/proc/self/fd/28
/proc/self/fd/29
/proc/self/fd/30
/proc/self/fd/31
/proc/self/fd/32
/proc/self/fd/33
/proc/self/fd/34
/proc/self/fd/35
/proc/self/fd/36
/proc/self/fd/37
/proc/self/fd/38
/proc/self/fd/39
/proc/self/fd/40
/proc/self/fd/41
/proc/self/fd/42
/proc/self/fd/43
/proc/self/fd/44
/proc/self/fd/45
/proc/self/fd/46
/proc/self/fd/47
/proc/self/fd/48
/proc/self/fd/49
/proc/self/fd/50
/proc/self/fd/51
/proc/self/fd/52
/proc/self/fd/53
/proc/self/fd/54
/proc/self/fd/55
/proc/self/fd/56
/proc/self/fd/57
/proc/self/fd/58
/proc/self/fd/59
/proc/self/fd/60
/proc/self/fd/61
/proc/self/fd/62
/proc/self/fd/63
/proc/self/fd/64
/proc/self/fd/65
/proc/self/fd/66
/proc/self/fd/67
/proc/self/fd/68
/proc/self/fd/69
/proc/self/fd/70
/proc/self/fd/71
/proc/self/fd/72
/proc/self/fd/73
/proc/self/fd/74
/proc/self/fd/75
/proc/self/fd/76
/proc/self/fd/77
/proc/self/fd/78
/proc/self/fd/79
/proc/self/fd/80
/proc/self/fd/81
/proc/self/fd/82
/proc/self/fd/83
/proc/self/fd/84
/proc/self/fd/85
/proc/self/fd/86
/proc/self/fd/87
/proc/self/fd/88
/proc/self/fd/89
/proc/self/fd/90
/proc/self/fd/91
/proc/self/fd/92
/proc/self/fd/93
/proc/self/fd/94
/proc/self/fd/95
/proc/self/fd/96
/proc/self/fd/97
/proc/self/fd/98
/proc/self/fd/99
/proc/sched_debug
/proc/mounts
/proc/net/arp
/proc/net/route
/proc/net/tcp
/proc/net/udp
/proc/net/fib_trie

SSH

/root/.ssh/id_rsa
/root/.ssh/id_rsa.pub
/root/.ssh/authorized_keys
/etc/ssh/sshd_config
/var/log/secure

Nginx

/etc/nginx/nginx.conf
/var/www/html
/usr/local/services/nginx-1.6.2/logs/access.log     #根据情况替换[version]
/usr/local/services/nginx-[version]/logs/error.log
/usr/local/services/nginx-[version]/nginx.conf
/usr/local/services/nginx-[version]/conf/nginx.conf
/usr/local/services/nginx-[version]/conf/proxy.conf
/usr/local/services/nginx-[version]/conf/extra/haolaiyao.conf

Apache

/home/httpd/
/home/httpd/www/

tomcat

/usr/local/services/apache-tomcat-8.0.23/logs       #根据情况替换[version]
/usr/local/services/apache-tomcat-[version]/logs/catalina.out

jetty

/usr/local/services/jetty-8.1.16/                   #根据情况替换[version]
/usr/local/services/jetty-8.1.16/logs/stderrout.log
/usr/local/services/jetty-8.1.16/etc/jetty.xml

resin

/usr/local/services/resin-4.0.44/                   #根据情况替换[version]
/usr/local/services/resin-4.0.44/conf/resin.xml
/usr/local/services/resin-4.0.44/conf/resin.properties

svn

/home/svnroot/

参考文章

浅谈 Linux系统 proc
一些CTF 做题的tricks