編譯super后放到bin目錄下,
在PHP中執行shell_exex("super mkdir dir");
super 原文件如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
/*本工具是為PHP調用linux外部命令而寫(xiě).
*其原理是首先為apatch設置root權限,
*接著(zhù)調用system執行命令行參數,
*最后返回命令行結果值
*/
int main(int argc, char* argv[])
{
uid_t uid ,euid;
char cmd[2048]={0};
int i,ret=0;
FILE * fp;
uid = getuid() ;
euid = geteuid();
//printf("my uid :%u/n",getuid()); //這里顯示的是當前的uid 可以注釋掉.
//printf("my euid :%u/n",geteuid()); //這里顯示的是當前的euid
setreuid(euid, uid); //交換這兩個(gè)id
//printf("after setreuid uid :%u/n",getuid());
//printf("afer sertreuid euid :%u/n",geteuid());
for(i=1;i<argc;i++)
{
strcat(cmd,argv[i]);
strcat(cmd," ");
}
strcat(cmd,";echo $? > /tmp/system.return");
system(cmd);
fp=fopen("/tmp/system.return","r");
if(fp)
{
fscanf(fp,"%d",&ret);
fclose(fp);
}
return ret;
}
編譯加上權限
chmod u+s super
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。