• 0

[Apache, EXE] How to run EXE through APACHE using alias! HELP


Question

Hey guys can I ask for some good old help please?

What it is I want to be able to run say a console application, through my webserver on apache.

I know it a secruity hole so I ask how do I first of all set up apache to allow .EXE to run, and then how to do it so say a .EXE will disgause(sorry for spelling) itself as say a .SOB. So I call something like blah.com/send.SOB.

this is currently the code i have For a test console app(written in delphi)

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  ShellAPI,
  windows;

var
  S: array[0..255] of char;
begin

  windows.GetEnvironmentVariable('QUERY_STRING',@S[0], 255);

  writeln('<html><body>');
  writeln('Query=');
  writeln(s);
  Writeln('</ br>Executed</body></html>');
  shellexecute(0,'open','notepad', nil, nil, SW_SHOWNORMAL);
end.

I've Tried this on a mate custom built server application, and all he dose is a simple config edit such as this

[.exe]
CodeBase=

[.snd]
CodeBase=c:\www\localhost\Project2.exe

So all that basically does is will run the .exe on the server but if a .snd is called it will run the code above.

I know this is not as easy on apache thats is where i ask you for help how do i achive this?

thanks Matt

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Not sure you can disguise the executables as .sob files unless, as Antaris also suggested, you make a wrapper script. The script would actually be written in Perl or PHP (or any other server-side scripting language) and that would be responsible for executing the .exe file and capturing the output from it.

If you just want to have .exe files run and the STDOUT returned to Apache this should do what you want. Note I've made this only work in the named directory to give you a little bit of security. At least then you can specify which .exe files should be run by putting them in the specified folder.

ScriptAlias /path/in/browser "C:/path/to/executables/"

<Directory "C:/path/to/executables/">
	AllowOverride None
	Options ExecCGI
	AddHandler cgi-script .exe
</Directory>

Note that any .exe file you start this way will run as the user that Apache also runs as. If you have Apache installed as a system service on windows, the .exe files and any processes they start will run as SYSTEM and will not by default be able to interact with the current user session unless you change the Apache service to allow interaction with the desktop.

Link to comment
Share on other sites

  • 0

sorry only just read this i tried that and i now get this error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator,_________ and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

from just running this peice of delphi code

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils, ShellAPI, windows;

begin
  ShellExecute(0, nil, 'c:\windows\notepad.exe', 'c:\windows\general.txt', nil, SW_SHOWMAXIMIZED);

end.

any idea?

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.