# Exploit Title: MoneyTrackin Web Application - Multiple Cross-Site Scripting (Stored + Reflected XSS) # Date: 07/04/16 # Exploit Author: Omkar Joshi # Vendor Homepage: https://www.moneytrackin.com # Version: Latest # Contacted Vendor Date: 07/04/16 *# Affected URL:- Stored XSS ->* https://www.moneytrackin.com/dashboard/dashboard/ https://www.moneytrackin.com/accounting/edit_periodic_transaction/?project=NULL https://www.moneytrackin.com/accounting/edit_multiple_transactions/?editSelected=1&id[]= *Reflected XSS ->* https://www.moneytrackin.com/community/averages/ https://www.moneytrackin.com/dashboard/reports_charts/compare_tags/?project=NULL *# Attack Scenario: Stored Cross Site Scripting* *A) https://www.moneytrackin.com/dashboard/dashboard/ * Step 1. Login into MoneyTrackin Web Application Step 2: Edit Notes. Step 3: Insert XSS payload in Text Area of Notes. I have used "> XSS payload Step 4: Then click on Save Changes Step 5: Whenever anyone try to visit Dashboard of MoneyTrackin, XSS Script will get execute. *B) https://www.moneytrackin.com/accounting/edit_periodic_transaction/?project=NULL * Step 1. Login into MoneyTrackin Web Application Step 2: Go to Accounting -> Periodic Transcations -> Add new Periodic Transactions. Step 3: Insert XSS payload in "Description" and "Tags" fields of Transcation Data and Tags. I have used "> XSS payload Step 4: Then click on Add Step 5: Whenever anyone try to visit Periodic Transactions page of MoneyTrackin, XSS Script will get execute. *C) https://www.moneytrackin.com/accounting/edit_multiple_transactions/?editSelected=1&id[]= * Step 1. Login into MoneyTrackin Web Application Step 2: Go to Accounting -> Transfer Step 3 : Click on Transfer and Edit it Step 4: Insert XSS payload in Description. I have used "> XSS payload Step 4: Then click on Edit Step 5: Whenever anyone try to visit/edit multiple transcations page of MoneyTrackin, XSS Script will get execute. *# Attack Scenario: Reflected Cross Site Scripting* *A) https://www.moneytrackin.com/community/averages/ * Step 1. Login into MoneyTrackin Web Application Step 2: Go to Community -> Community Averages. Step 3: Insert XSS payload in "Tag" parameter of Community Averages I have used "> XSS payload Step 4: Then click on See Community Average, XSS Script will get execute. *B) https://www.moneytrackin.com/dashboard/reports_charts/compare_tags/?project=NULL * Step 1. Login into MoneyTrackin Web Application Step 2: Go to Dashboard -> Reports & Charts -> Comapre Tags Step 3: Insert XSS payload in "Tags" parameter of Tags I have used "> XSS payload Step 4: Then click on Compare Tags, XSS Script will get execute. *# Impact of attack: *An attack can perform Cross Site Scripting attack and steal the cookie of other active sessions. An attacker would exploit a vulnerability within a website or web application that the victim would visit, essentially using the vulnerable website as a vehicle to deliver a malicious script to the victim’s browser. An attacker might be able to put stored XSS into the website. https://www.owasp.org/index.php/Cross-site_Scripting_(XSS) *# Recommendation:* Use an appropriate combination of white listing and blacklisting to ensure only valid and expected input is processed by the system.Furthermore, classes within the output tag libraries should also be modified to encode potentially dangerous characters with their HTML escape Counter parts. For more information refer the following link https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet