• php执行root命令


    一.确定php的sysem等函数可用

    二.编写c程序,如ipt.c

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

    int main()
    {
        uid_t uid ,euid;

        uid = getuid() ;
        euid = geteuid();

        if(setreuid(euid, uid))  //交换这两个id
            perror("setreuid");

        system("/sbin/iptables -nL --line-number"); //执行iptables -L命令
        return 0;
    }

    编译
    gcc -o ipt -Wall ipt.c
    赋予权限:
    chmod u+s ipt

    php调用:
    system("/scripts/ipt",$retval);


    三.携带参数
    ipt_accept.c

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

    int main(int agrc,char* argv[])
    {
        uid_t uid ,euid;

        uid = getuid() ;
        euid = geteuid();

        if(setreuid(euid, uid))  //交换这两个id
            perror("setreuid");


        char buf[500];
        sprintf(buf,"iptables -A INPUT -p tcp -s %s --dport 3306 -j ACCEPT",argv[1]);
        system(buf); //执行iptables -L命令
        return 0;
    }


    编译
    gcc -o ipt_accept -Wall ipt_accept.c
    赋予权限:
    chmod u+s ipt_accept

    php调用:
    system("/scripts/ipt_accept " . $ip,$retval);

  • 相关阅读:
    执行上下文和作用域,作用域链
    学习笔记一:定位
    exports和module.exports的区别——学习笔记
    伪类和伪元素
    visibility和display
    CSS选择器,层叠
    Servlet乱码处理-------续集
    Servlet的乱码处理手记
    前端框架之Semantic UI
    最完整的Oracle11g 概述
  • 原文地址:https://www.cnblogs.com/itfenqing/p/4429388.html
Copyright © 2020-2023  润新知