使用PHP执行root命令

本文介绍了一种通过PHP调用C语言程序,进而执行Root权限下命令的方法。具体步骤包括:1. 在PHP中使用exec函数调用C程序;2. C程序设置UID为0并执行指定的Shell命令;3. 编写并执行Root命令的脚本文件;4. 编译C语言代码;5. 对编译后的程序进行授权。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述:

  • 主要是借助于C语言程序作为中间层,进行调用root命令。

1. 在PHP代码的任意一个地方调用exec函数

public function handle()
{
   // c语言编译后的目录地址
   exec('/opt/bin/php-root');
}

2. C语言代码

#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
    setuid(0);
    system("/bin/bash /opt/bin/restart-service");
    return 0;
}

3. restart-service脚本文件

# restart-service脚本的名称

# 在这个脚本文件中可以放入PHP需要执行的任意root命令
# 增加这个脚本文件的意义在于,不用每次新增一个root命令就需要重新编译c语言,方便修改

4. 编译C语言代码

gcc -o php-root php-root.c

5. 给编译后的php-root程序授权

sudo chmod u=rwx,go=xr,+s php-root

6. 编写需要执行的root命令在restart-service中

#!/bin/bash

# 需要重启或需要执行root的命令
systemctl restart php7.0-fpm.service

 

转载于:https://my.oschina.net/u/3054299/blog/2966683

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值