![](/icons/69138yi.gif)
![](/icons/69138yi.gif)
![](/icons/69138de.gif)
![](/icons/69138de.gif)
![](/icons/69138de.gif)
![](/icons/69138de.gif)
![](/icons/69138de.gif)
![](/icons/69138de.gif)
![](/icons/69138de.gif)
![](/icons/69138de.gif)
PHP里有
![](/icons/69138yi.gif)
![](/icons/69138hanshu.gif)
![](/icons/69138hanshu.gif)
![](/icons/69138de.gif)
Opens a pipe to a process executed by forking the command given by command.
Returns a file po
![](/icons/69138int.gif)
![](/icons/69138return.gif)
![](/icons/69138kh.gif)
This po
![](/icons/69138int.gif)
![](/icons/69138kh.gif)
![](/icons/69138kh.gif)
![](/icons/69138kh.gif)
也就是说, 我们可以对popen
![](/icons/69138de.gif)
![](/icons/69138de.gif)
![](/icons/69138yi.gif)
在LINUX下以ROOT权限执行某个命令
![](/icons/69138de.gif)
su --login root --command 'chmod 644 /lab/cmd.php'
综合以上, 下面
![](/icons/69138de.gif)
<?php
$su = "su --login root --command 'chmod 644 /lab/cmd.php'";
$root = "iamroot";
$fp = @popen($su, "w");
@fputs($fp, $root);
@pclose($fp);
?>
当然, 如果/lab/cmd.php这个文件本身就是通过PHP创建
![](/icons/69138de.gif)
![](/icons/69138de.gif)
![](/icons/69138hanshu.gif)
![](/icons/69138de.gif)
![](/icons/69138de.gif)
![](/icons/69138de.gif)
在其他用户下su root 执行这个命令貌似要输入系统root密码
![](/icons/69138de.gif)
[root@KOLtest test]# su dict
[dict@KOLtest test]$ su --login root --command 'chmod 644 /opt/www/test/cmd.php'
Password:
写成php文件 在web中
![](/icons/69138diaoyong.gif)
![](/icons/69138de.gif)
![](/icons/69138de.gif)
![](/icons/69138dou.gif)
![](/icons/69138de.gif)
可是我记得su root
![](/icons/69138yi.gif)
![](/icons/69138de.gif)
![](/icons/69138de.gif)
使用POPEN就是为了可以交互哦. 代码中
![](/icons/69138de.gif)
![](/icons/69138de.gif)
<?php
$su = "su --login root --command 'chmod 644 /lab/cmd.php'"; //用文件
绝对路径
$rootpassword = "iamroot"; //root用户
密码
$fp = @popen($su, "w");
@fputs($fp, $root);
@pclose($fp);
?>
最新评论