gpt4 book ai didi

php - 带有 C 包装器的脚本上的 Setuid

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:59:26 25 4
gpt4 key购买 nike

我只想使用具有 root 权限的 php 脚本和像这样的 C 包装器 tutorial .

ls -l :

-rwsr-xr-x. 1 root root 6466 Aug 15 03:07 createConfig
-rwxrwxrwx. 1 root root 102 Aug 15 04:23 test.php
-rw-r--r--. 1 root root 822 Aug 14 21:35 index.php

创建配置文件:

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

int main(void) {
system("/usr/bin/php /var/www/html/test.php");
return 0;
}

测试.php :

<?php
mkdir("/root/ourDir");
?>

索引.php :

<?php
exec("/var/www/html/createConfig");
?>

但是当在浏览器上运行 index.php 时我得到了这个错误:

sh: /var/www/html/createConfig: Permission denied

谢谢

最佳答案

你应该把 setgid(getegid()); setuid(geteuid()) 在调用 system() 之前。

作为旁注,在您的示例中设置文件权限的方式,您的“解决方案”是完全不安全的。任何用户都可以更改由该 setuid C 程序运行的 .php 脚本的内容,然后使用 C 程序以 root 身份执行更改后的内容。

关于php - 带有 C 包装器的脚本上的 Setuid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19579894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com