网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月18日漏签0天
linux吧 关注:502,129贴子:2,567,861
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 下一页 尾页
  • 43回复贴,共2页
  • ,跳到 页  
<<返回linux吧
>0< 加载中...

用php为iptables写简单的web界面如何调用shell或者获root权限啊

  • 只看楼主
  • 收藏

  • 回复
  • 宿管大爷一
  • ----xr--
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
照网上的例子试了好多都失败了,有没有成功的例子分享下~


  • 宿管大爷一
  • ----xr--
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在线等~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


为你推荐
linux系统如何安装软件下载安装win11,win10,win7等win系统,就到系统之家,品牌系统,专业/安全,一键安装,纯净专业,稳定、速度快,系统之家是您重装系统的不二选择。
2025-05-18 18:49广告
立即查看
2025-05-18 18:49:10
广告
  • 宿管大爷一
  • ----xr--
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
快点来 人人人


  • 宿管大爷一
  • ----xr--
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不要沉啊!!!!!!!!!!!!!!!!!!!


  • 爆操整个宇宙
  • ----xr--
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
php环境怎么配呢?


  • 宿管大爷一
  • ----xr--
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#!/bin/bash
echo -e 'shelltest:iptables -L'
iptables -L
<?php
exec("/usr/bin/sudo /var/www/html/shelltest.sh",$output);
print_r($output);
echo<hr />;
?>
这个对吗


  • 宿管大爷一
  • ----xr--
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
F5已毁


  • 宿管大爷一
  • ----xr--
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
<?php
echo'<hr />';
system("whoami");
system("pwd");
echo'<hr />';
$a=system("ls",$b);
//echo 'Last line of the output:'.$a;
//echo 'Return value:'.$b;
echo'<hr />';
exec("ls",$output);
print_r($output)
?>
正常的
echo'<hr />';
system("iptables -L",$asd);
print_r($asd);
会返回 3
何解?


2025-05-18 18:43:10
广告
  • 宿管大爷一
  • ----xr--
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
再顶一顶


  • 宿管大爷一
  • ----xr--
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
都说两句提示一下嘛


  • gaolool
  • -----rw-
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你的这个php脚本如果是用httpd或者类似的web service 执行的肯定是没权限的,你应该用 root 权限新启动一个进程监听某个端口或者文件,然后你web端收到http请求后通知这个进程,这个进程再去操作iptables就有权限了


  • gaolool
  • -----rw-
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
最简单的搞法(不是太好的方案,只是简单)就是 新建一个 php 文件,比如 iptables.php
<?php
while (true) {
$sign = file_get_contents('/tmp/iptables-channel'); // 文件名自己定就好了
if ($sign !== '') {
file_put_contents('/tmp/iptables-channel', ''); //清空内容
system('xxxxxx'); //这里调用 system 函数去操作 iptables
// ......
}
sleep(1); //一秒循环一次
}
然后 用root权限执行
root@localhost# nohup php iptables.php &
最后你web服务端的逻辑就是收到对应的请求就往 /tmp/iptables-channel 这样的文件里面写对应的内容(注意需要web service 对这个文件有写权限)
ps.这例子只是用来说明一下流程,实际生产环境中可以用更健壮的方案


  • 宿管大爷一
  • ----xr--
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
还有人提点建议吗~~~


  • 用户已被注册n1
  • -------x
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你是没有权限执行iptables?
给你的程序加suid位或者写一个加suid位的调用iptables的程序,这样你的程序再调用这个程序就有权限执行iptables了
就像sudo程序一样


2025-05-18 18:37:10
广告
  • 宿管大爷一
  • ----xr--
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
uid_t uid ,euid;
uid=getuid() ;
euid=geteuid();
printf("my uid :%u\n",getuid()); //这里显示的是当前的uid 可以注释掉.
printf("my euid :%u\n",geteuid()); //这里显示的是当前的euid
if(setreuid(euid, uid)) //交换这两个id
perror("setreuid");
printf("after setreuid uid :%u\n",getuid());
printf("afer sertreuid euid :%u\n",geteuid());
system("/sbin/iptables -L"); //执行iptables -L命令
return 0;
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 43回复贴,共2页
  • ,跳到 页  
<<返回linux吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示