linux 知识点

软连接 #

  1. 在 linux 中,/proc/self/cwd/会指向进程的当前目录,在不知道 flask 工作目录时,我们可以用/proc/self/cwd/flag/flag.jpg来访问 flag.jpg。
  2. ln -s是Linux的软连接命令,其类似与windows的快捷方式。比如ln -s /etc/passwd shawroot 这会出现一个名为shawroot的文件,其内容为/etc/passwd的内容。
ln -s /proc/self/cwd/flag/flag.jpg shaw
zip -ry root.zip shaw
-r:将指定的目录下的所有子目录以及文件一起处理

-y:直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。

/proc/self #

proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。

还有的是一些以数字命名的目录,他们是进程目录,系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的PID号为目录名,他们是读取进程信息的接口

  • cmdline

cmdline 文件存储着启动当前进程的完整命令

cat /proc/1083/cmdline
  • cwd

cwd 文件是一个指向当前进程运行目录的符号链接。可以通过查看cwd文件获取目标指定进程环境的运行目录

ls -al /proc/1083/cwd
  • exe 是一个指向启动当前进程的可执行文件(完整路径)的符号链接。通过exe文件我们可以获得指定进程的可执行文件的完整路径
ls -al /proc/1090/exe
  • environ

    environ文件存储着当前进程的环境变量列表,通过查看environ目录来获取指定进程的环境变量信息

    cat /proc/2889/environ
    
  • fd

    里面包含着当前进程打开的每一个文件的描述符(路径)

    ls -al /proc/1083/fd /proc/self表示当前进程目录
    
  • /proc/self表示当前进程目录,在过滤了很多字符时就用,比如目录穿越,任意文件等

    /proc/self