2014-07-24 51 views
0
<?php 


    $scan = shell_exec('ruby /home/user/wpscan/wpscan.rb --url site.com --enumerate vp --follow-redirection --threads 1000'); 

    And than... 
    ... extracting data from array(); (explode("plugins:", 1)) 
    ... writing data[1] to txt file ... 
    ... send mysql query with rule if() {} else {} ... 
    ... unlink(); *.txt file ... 
    ...that's all 

    ?> 

你好。通过crontab运行ruby脚本(wpscan)有问题。 将其添加为根:的Ruby,PHP和了shell_exec crontab中工作不正常

crontab -e 

在cron:

* * * * php5 /home/user/wpscan/wpscan.php 

当时间到来 - PHP脚本启动,但是!运行除$scan以外的脚本的所有部分(部分使用ruby脚本不起作用)。

我试图表明脚本完整路径红宝石斌:“它红宝石”比我复制到PHP文件的路径。

Ruby安装在根目录下,所有脚本都拥有最大权限,并且在root下创建。在任何地方的脚本中,我都使用完整路径来连接我需要的文件。我也尝试使用php5的完整路径,但是如果信任syslog.log - 没关系。请帮我别人:)

+0

你会尝试将ruby输出重定向到文件并向我们提供明确的错误消息吗? – mudasobwa

+0

Arg ...对不起,不能提供红宝石脚本日志输出atm,不能从工作访问我的服务器,尝试但除80以外的所有端口都关闭:(我的坏,没有检查之前...对不起? 但也许任何猜测:) –

+0

我不是算命先生:)你可能需要尝试运行'红宝石/home/user/wpscan/wpscan.rb --url site.com --enumerate副总裁 - 跟随重定向 - 直接从根控制台线程1000',你会看到,那么问题是什么。我想,你的root env缺少一些正确运行脚本所需的宝石。 – mudasobwa

回答

0

好的。我已经解决了这个问题。 根据我的理解,即使我们从cron运行ruby脚本,这并不意味着我们有足够的权利。因此,首先我做了:向sudoers添加一个修复程序 - 为root提供NOPASSWD。 下一页:我检查出脚本中的所有pathes,因为他们必须满(即:/bin/php5 /home/test/test.php) 比我在我的脚本加sudo命令:

<?php 
$test = shell_exec('sudo ruby /home/test/test.rb'); 
?> 

也别忘使用chmod + X file.php

在cron我用:

crontab -e 
* * * * * php5 /home/test/test.php 

而这一切:)现在一切工作正常。 我的一些错误:

  • 不要忘记做从文件测试输出(即:SH run.sh>的test.txt);

  • 使用邮件报警器:用cron,它可以帮助以及

  • 如果您运行从cron东西 - 更好的使用全路径

    感谢mudasobwa的建议和时间:)

+0

这是值得考虑的,你是否想给你的PHP用户不受限制的sudo访问。你也可以限制用户只能执行_certain_命令,这几乎可以肯定你应该在这里做什么。 –

+0

如果你可以看到,我写了关于crontab,所以一些在root和用户下运行的脚本无法访问它们。数据库中的所有数据都被过滤,只有主机名可以写入,所以这里没有风险。只有在找到rce或sqli ...但是,正如我以前写的 - 所有数据都被过滤了。 –