A tool designed to assist with finding all sinks and sources of a web application and display these results in a digestible manner.
Tracy Extension
There are many different ways to trigger XSS, especially considering the large number of frontend frameworks that have been made popular in the last few years. For example, some of the less traditional ways of exploiting XSS can be through:
* DOM clobbering
* DOM injection
* Frontend template injection
* Backend template injection
* Open redirects
These attack vectors are significantly different than traditional stored and reflected XSS cases and they require new tools for finding them effectively.
Many similar tools only look for server response reflection, however this is not very helpful if all output encoding is performed by the frontend. In order to really gain knowledge about all the true sinks of the application, we need a tool that grants us \"X-ray vision into the DOM\".
This extensions was written with the goal of eliminating XSS by assisting a penetration tester in identifying every source of input into an application and following that input to all of its sinks. These cases are documented and stored as references that can be used to identify the locations of potentially risky input.
Read more
* DOM clobbering
* DOM injection
* Frontend template injection
* Backend template injection
* Open redirects
These attack vectors are significantly different than traditional stored and reflected XSS cases and they require new tools for finding them effectively.
Many similar tools only look for server response reflection, however this is not very helpful if all output encoding is performed by the frontend. In order to really gain knowledge about all the true sinks of the application, we need a tool that grants us \"X-ray vision into the DOM\".
This extensions was written with the goal of eliminating XSS by assisting a penetration tester in identifying every source of input into an application and following that input to all of its sinks. These cases are documented and stored as references that can be used to identify the locations of potentially risky input.
Source Manifest.json
{
"update_url": "https://clients2.google.com/service/update2/crx",
"permissions":["",
"storage",
"webRequest"],
"background":{"scripts":["background.bundle.js"]},
"content_scripts":[{"matches":[""],
"all_frames":true,
"css":["page.css"],
"js":["content.bundle.js"],
"run_at":"document_start"}],
"browser_action":{"default_title":"Tracy",
"default_icon":{"16":"tracy_16x16.png",
"48":"tracy_48x48.png",
"96":"tracy_96x96.png",
"128":"tracy_128x128.png"}},
"web_accessible_resources":["page.bundle.js",
"databaseWorker.bundle.js",
"searchWorker.bundle.js"],
"manifest_version":2,
"name":"Tracy",
"description":"A tool designed to assist with finding all sinks and sources of a web application and display these results in a digestible manner.",
"version":"0.9.2"}
Read more
"update_url": "https://clients2.google.com/service/update2/crx",
"permissions":["
"storage",
"webRequest"],
"background":{"scripts":["background.bundle.js"]},
"content_scripts":[{"matches":["
"all_frames":true,
"css":["page.css"],
"js":["content.bundle.js"],
"run_at":"document_start"}],
"browser_action":{"default_title":"Tracy",
"default_icon":{"16":"tracy_16x16.png",
"48":"tracy_48x48.png",
"96":"tracy_96x96.png",
"128":"tracy_128x128.png"}},
"web_accessible_resources":["page.bundle.js",
"databaseWorker.bundle.js",
"searchWorker.bundle.js"],
"manifest_version":2,
"name":"Tracy",
"description":"A tool designed to assist with finding all sinks and sources of a web application and display these results in a digestible manner.",
"version":"0.9.2"}