|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
讲了这么多,无非是想说:学习PHP不仅要掌握方法,更多的是付出汗水,我不希望看到中途放弃的人,相信自己,相信自己的选择,更要相信自己的能力,如果自己想放弃,暴力一点的话,就自己抽自己一个嘴巴。 在进修C 之前 学过一段工夫的PHP, 哪一个时分需求用PHP 来运转root号令,一向未果,直到有一天搜刮到了super这个插件.
跟着进修C的日子多了.发明可以用C言语来包裹 要运转的内部号令. 实行了一下.胜利了.
不需求任何内部东西就能够完成用PHP 履行root号令.
平台:Linux. 实行号令iptables 以后的目次是/var/www/html/http
写法式的时分 用root用户
人人都晓得iptables 非root用户不克不及运转.
起首写个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();
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;
}
编译该文件 gcc -o ipt -Wall ipt.c
在该途径下生成ipt 这个可履行文件.
假如如今用PHP网页挪用 该ipt的话,即便setreuid了 也是不可的.
接上去要做的是chmod u+s ./ipt
ls 一下
-rwsr-xr-x 1 root root 5382 Jul 2 21:45 ipt
s位已设置上了.
再写一个php页面挪用它.
以下内容为法式代码
<?php
echo '<pre>';
$last_line = system('/var/www/html/http/ipt', $retval);
echo '
</pre>
<hr />Last line of the output: ' . $last_line . '
<hr />Return value: ' . $retval;
?>
在阅读器中阅读.
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
my uid :48
my euid :0
after setreuid uid :0
afer sertreuid euid :48
--------------------------------------------------------------------------------
Last line of the output: afer sertreuid euid :48
--------------------------------------------------------------------------------
Return value: 0
该号令履行胜利..
尽人皆知: apache的uid 为48. 挪用setreuid后 将无效用户id 和实践用户id交换了.(必需在chmod u+s失效的情形下) 使apache以后的 uid为0 如许就可以履行root号令了。
<P style="TEXT-INDENT: 2em">
学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了....然后... |
|