S权限引发的思考-old

Linux…

## s权限 和普通的rwx权限不同,当s权限出现在文件上的时候,意味当其他用户使用执行这个文件的时候会被暂时set UID,简称SUID.
该权限的一些作用:

 1.SUID权限仅对二进制程序有效(重要…)
2.执行则对于该程序需要具有x的可执行权限
3.本权限仅在执行该程序的过程中有效
4.执行者将具有该程序拥有者的权限

可以看出SUID的目的就是:让本没有相应权限的用户运行这个程序是,可以访问他没有权限访问的资源.

Example

看两个例子:
1.Linux的密码是放在/etc/shadow下面的,然而权限一般普通用户都是0权限的,这就涉及到了一个问题.
那么普通用户为什么能修改密码?

是通过系统的passwd命令修改的,然后查看passwd的权限发先root权限是rws,这个s代表setuid的权限, 因此当普通用户调用passwd命令时,setuid给了它一个临时的root权限,使得普通用户能够对/etc/shadow文件进行修改.
接着我尝试给cat命令一个s权限,让普通用户读取/etc/shadow文件.

2.接下想个这样的问题:
有一个用户user创建了一个文件之后,权限被设置为600,那么以为着只能user和root可以查看.
那么当有一个其他的用户atk想要读取这个文件,就可以通过这种方式来读取.
前提条件:需要user用户创建一个二进制程序,并且给予其他用户x权限,再给自己设置一个s权限.(出现"S"的原因是由于本身不具有x权限)
这里通过cp一个cat命令来实现.

两个用户test1和test2.

可以看出key.txt文件属于test1权限为600.

此时的test2没有读取的权限.
但是getkey是test1且可运行并且拥有s权限.

成功读取内容.

当然利用方法还是用很多的,可以用来提权等…

Brain Storming Source: HITCON 2014 CTF - Simple Diagnostic CGI  

大神绕过.(ง •_•)ง.
2016-12-24 14:53:55 星期六

Licensed under CC BY-NC-SA 4.0