我想通过php文件运行wpscan。我正在使用shell_exec函数调用wpscan命令,但它抛出以下错误:

[ERROR] cannot load such file -- bundler/setup

wpscan需要ruby在服务器中运行,wpscan命令只能在wpscan目录中运行。当我们在wpscan目录外运行此命令时,它将抛出相同的以下错误:
[ERROR] cannot load such file -- bundler/setup

这意味着浏览器无法找到wpscan所需的文件,并且所有文件都放在网站的文档根目录中。其他所有命令都是通过shell_exec执行的,但是ruby命令抛出了一个错误。简而言之,它找不到wpscan所需的文件。
命令是:
ruby wpscan.rb --url http://example.com/ --follow-redirection --log

我还尝试使用完整路径:
/usr/local/rvm/rubies/ruby-2.3.0/bin/ruby /var/www/html/wp-scan/wpscan.rb --url example.com --follow-redirection --log

但没什么用。
$wp_command = shell_exec('/usr/local/rvm/rubies/ruby-2.3.0/bin/ruby /var/www/html/wp-scan/wpscan.rb --url example.com --follow-redirection --log');

echo $wp_command;

die;

最佳答案

试试这样的:

$wp_command = shell-exec('cd /var/www/html/wp-scan && ruby wpscan.rb --url example.com --follow-redirection --log');

echo $wp_command;

die;

如果正确安装了wpscan和rvm,应该可以工作。

08-08 08:07