Серверный скрипт для запуска приложения - PullRequest
2 голосов
/ 19 марта 2012

До сих пор я безуспешно пытался написать php-скрипт, который будет запускаться при открытии страницы и запускать metasploit!

Я пробовал shell_exec и exec и все другие альтернативы, но хотя я могу заставить его делать простые вещи (например, ls, cds и т. Д.), Если я пытаюсь запустить msfconsole, он ничего не делает!

Я также попробовал другой скрипт, который запускает Firefox, и снова ничего не происходит!

Теперь я знаю, что php работает на сервере, и я не ожидаю увидеть открытие консоли или firefox на клиентском компьютере! Вместо этого, чтобы проверить, работает ли я, я пытаюсь отобразить вывод shell_exec! Но в любом случае, поскольку я размещаю файлы на моей машине (то есть это сервер, а виртуальная машина - клиент), может ли он на самом деле запустить Firefox. должно быть в состоянии видеть, как приложение открывается здесь так же, как если бы вы делали это из командной строки!

Чего мне не хватает?

Есть ли другой способ сделать это? (Т.е. запускать metasploit каждый раз, когда пользователь открывает мою страницу)

ПРИМЕЧАНИЕ. Я попытался указать полный путь для msfconsole, но это тоже не сработало!

Вот что у меня есть:

<code>$output = shell_exec('/opt/local/libexec/metasploit3/msfconsole;show');
echo "<pre>$output
";

Бит "; show" использовался для того, чтобы заставить его что-то запустить и напечатать что-то, но ничего не изменилось!

1 Ответ

1 голос
/ 20 марта 2012

Когда вы запускаете приложение с графическим интерфейсом из командной строки в системе X Window, оно будет использовать экран по умолчанию. Когда вы запускаете его с помощью php, который встроен в веб-сервер apache, программа может не знать, где отобразить приложение графического интерфейса.

Есть две вещи, чтобы сделать эту работу.

  1. Программа, выполняющая приложение графического интерфейса, должна иметь разрешение на использование дисплея
  2. Вы должны указать программе, какой дисплей использовать.

Я использовал следующее в своем php-скрипте

<?php
$cmd = `export DISPLAY=:0; gedit`;
shell_exec($cmd);
?>

и запустил скрипт из терминала, используя php -f test.php Я получил Gedit и работает.

То же самое можно проверить с помощью скрипта в apache. Пожалуйста, добавьте пользователя apache с правами доступа к серверу дисплея

обновление: я только что добавил следующее в /etc/apache2/apache2.conf (я использую ubuntu)

User poomalai
Group poomalai

и перезапустил веб-сервер перезапуск службы sudo apache2

теперь я получил доступ к localhost / test.php и Престо !! Я получил Gedit:)

Надеюсь, это поможет

...