目录
(一)环境变量配合SUID
0x01 条件
ROOT用户对某个第三方程序给予了SUID权限
PATH
是Linux 和 Unix 操作系统中的环境变量,它指定存储可执行程序的所有bin和sbin目录。当用户在终端上执行任何命令时,它会通过PATH变量来响应用户执行的命令,并向shell发送请求以搜索可执行文件。超级用户通常还具有/sbin和/usr/sbin条目,以便于系统管理命令的执行。
0x02 原理
攻击者通过对程序的运行、调试、反编译等得到了程序的运行大概逻辑。尝试对程序调用的环境变量进行复制后覆盖,导致程序在加载的时候继承权限。
Demo:
我们将下面写得demo.c上传到服务器上
#include<unistd.h>
void main(){
setuid(0);
setgid(0);
system("ps");
}
demo.c会执行ps命令,自带的环境变量,其路径