Context have been conducting application tests for over twelve years and have seen many developments over this time within the application security space.
Over the 12 years during which Context has been conducting application tests for clients there have been many developments in application security practices. Applications have become more complex, and we have had to expand and enhance testing methods to ensure that we continue to deliver the most thorough assessment possible. In 2007 we identified a need for a new tool designed to test the most complex applications; a tool capable of various different tests as yet unavailable on the market.
These tests included:
- Complex authorisation models
- Ability to test complex multi-phase forms e.g. single sign-on (SSO) systems
- Fuzzing forms protected by cross site request forgery (CRSF) tokens
- Supporting different encodings used by web services, Ajax and to leverage complex vulnerabilities
- Ability to perform sensitive timing attacks
- Heavy Ajax applications
No such tool existed – so we developed one ourselves instead. The result, the Context App Tool (CAT), has become the core application testing tool used at Context.
CAT is designed to facilitate manual web application penetration testing for more complex, demanding application testing tasks. It removes some of the more repetitive elements of the testing process, allowing the tester to focus on individual applications, thus enabling them to conduct a much more thorough test. Conceptually it is similar to other proxies available both commercially and open source, but CAT provides a richer feature set and greater performance, combined with a more intuitive user interface.
Why use CAT?
There are a number of differences between CAT and currently available web proxies. They include:
- CAT uses Internet Explorer's rendering engine for accurate HTML representation
- It offers integrated SQL Injection and XSS Detection
- Advanced Authentication and Authorisation using Synchronised Browsing
- Silverlight WCF Support
- Faster performance due to HTTP connection caching
- SSL Version and Cipher checker using OpenSSL
- Greater flexibility for importing/exporting logs and saving projects
- Tabbed Interface allowing for multiple tools at once e.g. multiple repeaters and different logs
- The ability to repeat and modify a sequence of requests (particularly useful in SSO testing)
- Ability to extend CAT using Addons
- It’s free!
CAT offers features that enable a wide variety of testing methods to be conducted:
- Request Repeater – Used for repeating a single request
- Proxy – Classic Inline proxy
- Fuzzer – Allows for batch of tests to be sent to a server for brute forcing, parameter fuzzing, forced browsing etc.
- Log – View a list of requests to sort, search repeat etc. Allows for a sequence of requests to be repeated and modified.
- Authentication Checker – Two synchronised proxies which can be used to check authentication and authorisation controls.
- SSL Checker – Request a specific page with various SSL ciphers and versions.
- Notepad – A text/RTF editor which can be used as a scratch pad for conversions etc.
- Web Browser – An integrated web browser with proxy pre-configured based on the Internet Explorer's rendering engine.
- Addons – Freely accessible API/SDK to extend CAT with additional functionality.
The latest version of CAT is Version 1 released on 2nd August 2011.
By downloading CAT you agree to the End User License Agreement.
Change Log From Beta 4 to Version 1:
- Lots of bug fixes to provide a (hopefully) stable release
- Silverlight WCF encoding/decoding support for the proxy, repeater and fuzzer
- New Improved authentication checker with two browser boxes which can be syncronised to send requests from a high to a low user
- Addons support – API for additional Tabs, SDK documentation and sample plugin
- C# Scriptable Fuzzing
- Multi-Stage CSRF HTML generation
- NTLM Authentication – Set credentials in file->options Migration to .NET 4
- Updated Wordlists – Including technology specific entries
- Load Requests from a Log directly into a new Fuzzer or Repeater
- Allows adding a list of words to be shown in the add columns
- Added to fuzzer and SQL injection tests a metric indicating the number of lines which differ (“No Lines Diff”) to help identify a change in response despite the page having totally dynamic content
- Mono Support – Beta Only
CAT supports the extension of its functionality using addons. These can be installed by placing a DLL into the addons directory under the CAT install directory.
List of currently supported addons:
- Coming Soon! – Context will be releasing addons to provide SQL extraction support, Oracle padding etc.
If you wish to develop an addon for CAT then there is a fully documented API and sample code. The addons can be written in any compatible .NET language and allow for new types of tabs to be created, which can build on the existing CAT controls.
This is a modified version of CAT which should run under Mono 2.10. Where possible as many features have been brought across from the Windows version, however the following are not currently supported:
- Browser with Proxy support
It has been tested on:
- Suse Linux with 2.10.2 of Mono
- Mac OSX 10.6.8 with 2.10.2 of Mono (lack of web browser causes some tab creations to fail)
This version should be considered beta quality; there are still unusual issues due to the implementation of the Mono runtime. All efforts have been made to work around some of the more obvious issues but certainly problems will remain. Use at your own risk.