一、linux文件权限
获取文件权限命令:ls -l
返回格式:
1.-表示文件,d表示目录。
2、3、4:对应文件所有者的rwx权限,例如,存在为r,不存在为-。
5、6、7:对应文件所在用户组的rwx权限,例如,存在为r,不存在为-。
9、10、11:对应文件所在用户组的rwx权限,例如,存在为r,不存在为-。
后面分别为文件所有者、文件所属用户组。
其中x权限还有两种特殊情况:
1.S特殊权限的介绍Set UID
当s这个标志出现在文件所有者的x权限上时,如/usr/bin/passwd这个文件的权限状态:“-rwsr-xr-x.”,此时就被称为Set UID,简称为SUID。那么这个特殊权限的特殊性的作用是什么呢?
1、SUID权限仅对二进制程序(binary program)有效;
2、执行者对于该程序需要具有x的可执行权限;
3、本权限仅在执行该程序的过程中有效(run-time);
4、执行者将具有该程序拥有者(owner)的权限。
SUID的目的就是:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。
2.T特殊权限的介绍Set BIT
SBIT(Sticky Bit)目前只针对目录有效,对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。
最具有代表的就是/tmp目录,任何人都可以在/tmp内增加、修改文件(因为权限全是rwx),但仅有该文件/目录建立者与 root能够删除自己的目录或文件。
注:这个SBIT对文件不起作用,只针对文件夹。
二、ruid,euid,suid,rgid,egid,sgid
1.r表示real,表示真实的原始的文件权限
2.e表示effective,表示程序动态运行具有的权限
3.s表示一个文件可以被另一个文件使用‘变身’的策略使用它的权限。比如上面的/etc/passwd 文件,其他用户只有执行的权限,但是没有读取得权限,其他非root用户在执行的时候,由于文件设置了suid,则执行过程中euid可以被更改为root,这样就可以访问了 。
三、shellshock漏洞
Shellshock的原理已经被探讨了很多,简单总结一下就是,当环境变量X被如此赋值:一个函数定义后面紧跟命令A(echo vulnerable),子进程会先执行命令A。而且,命令A在子进程的权限下被执行。
payload:
env x='() { :;}; 命令A' ./子进程