首先,我的操作系统是Fedora 20。
以下是ll
的摘录-rw-r--r-- 1 apache apache 91 Dec 31 01:47 block.php
-rwxr-xr-x 1 root root 67 Dec 31 01:27 clear
-rw-r--r-- 1 root root 10 Nov 27 14:48 eula.txt
-rw-r--r-- 1 root root 53 Dec 23 00:38 index.php
-rwxr-xr-x 1 apache apache 95 Dec 31 01:12 ipblock
is_writable
返回1
(true);
whoami在php文件中运行exec('whoami');
时返回apache。
正如你所看到的那样。
我看到了一些关于PATH变量的信息,但不确定它在哪里。
以下是block.php的确切代码
cat block.php
<?php
$is=is_writable(ipblock);
echo $is;
$output = system("sh ipblock");
echo $output;
?>
应该简单地将IP 44.44.44.44添加到iptables。很简单。 ipblock的内容
cat ipblock
iptables -A INPUT -s 44.44.44.44 -j DROP
service iptables save
service iptables restart
两个简单的文件,总代码少于10行。
我确保文件是可写的,拥有正确的用户,并且仍然。没有运气。
总结
问题:block.php从命令行运行并完全执行,但是,基于web的它不会。
会发生什么:Ip 44.44.44.44被iptables阻止。
其他信息:从root运行时whoami确实返回root,但是从web运行时,用户返回apache。我感觉某处有钥匙,但我完全错过了这个。