About this site

This site presents a list of open source HTTP proxies written in java and python, with comparison tables, so that you compare the proxies on a feature by feature basis. Further detail is available on each proxy: click it's name for more info.

About xhaus.com

  1. Follow xhaus.com on twitter
  2. Read the xhaus.com blog
  3. Browse the xhaus.com opensource portal

What is a HTTP proxy?

A HTTP proxy acts as an intermediary between a HTTP client (i.e. browser) and HTTP server. It receives all requests from the browser, and relays them (possibly modified) to the server. Likewise, it receives all responses from the server, and relays them (possibly modified) to the client. HTTP Proxies can be used for a wide variety of tasks, including filtering, logging, caching, etc, etc, etc.

Contact us

If any of the details on this page are incorrect or out-of-date, or you find a proxy that is not listed here, please feel free to tell us about it.

NAVIGATION: Front page | java proxy comparison table | python proxy comparison table

Detailed information about JAVA proxy: WebScarab
Proxy Name WebScarab
Language and version java version: 1.4
HTTP version 1.1
HTTPS Connect yes
Windows NTLM support no
Last updated YYYY-MM-DD 2012-03-02
Platform all
Author Rogan Dawes
Home page http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project
Primary features WebScarab is a framework for analysing applications that communicate using the HTTP and HTTPS protocols.

From the product page

A framework without any functions is worthless, of course, and so WebScarab provides a number of plugins, mainly aimed at the security functionality for the moment. Those plugins include:

  • Fragments - extracts Scripts and HTML comments from HTML pages as they are seen via the proxy, or other plugins
  • Proxy - observes traffic between the browser and the web server. The WebScarab proxy is able to observe both HTTP and encrypted HTTPS traffic, by negotiating an SSL connection between WebScarab and the browser instead of simply connecting the browser to the server and allowing an encrypted stream to pass through it. Various proxy plugins have also been developed to allow the operator to control the requests and responses that pass through the proxy.
  • Manual intercept - allows the user to modify HTTP and HTTPS requests and responses on the fly, before they reach the server or browser.
  • Beanshell - allows for the execution of arbitrarily complex operations on requests and responses. Anything that can be expressed in Java can be executed.
  • Reveal hidden fields - sometimes it is easier to modify a hidden field in the page itself, rather than intercepting the request after it has been sent. This plugin simply changes all hidden fields found in HTML pages to text fields, making them visible, and editable.
  • Bandwidth simulator - allows the user to emulate a slower network, in order to observe how their website would perform when accessed over, say, a modem.
  • Spider - identifies new URLs on the target site, and fetches them on command.
  • Manual request - Allows editing and replay of previous requests, or creation of entirely new requests.
  • SessionID analysis - collects and analyzes a number of cookies to visually determine the degree of randomness and unpredictability. Note that this analysis is rather trivial, and does not do any serious checks, such as FIPS, etc.
  • Scripted - operators can use BeanShell (or any other BSF supported language found on the classpath) to write a script to create requests and fetch them from the server. The script can then perform some analysis on the responses, with all the power of the WebScarab Request and Response object model to simplify things.
  • Parameter fuzzer - performs automated substitution of parameter values that are likely to expose incomplete parameter validation, leading to vulnerabilities like Cross Site Scripting (XSS) and SQL Injection.
  • Search - allows the user to craft arbitrary BeanShell expressions to identify conversations that should be shown in the list.
  • Compare - calculates the edit distance between the response bodies of the conversations observed, and a selected baseline conversation. The edit distance is "the number of edits required to transform one document into another". For performance reasons, edits are calculated using word tokens, rather than byte by byte.
  • SOAP - There is a plugin that parses WSDL, and presents the various functions and the required parameters, allowing them to be edited before being sent to the server. NOTE: This plugin is deprecated, and may be removed in the future. SOAPUI is streets beyond anything that Webscarab can do, or will ever do, and is also a free tool.
  • Extensions - automates checks for files that were mistakenly left in web server's root directory (e.g. .bak, ~, etc). Checks are performed for both, files and directories (e.g. /app/login.jsp will be checked for /app/login.jsp.bak, /app/login.jsp~, /app.zip, /app.tar.gz, etc). Extensions for files and directories can be edited by user.
  • XSS/CRLF - passive analysis plugin that searches for user-controlled data in HTTP response headers and body to identify potential CRLF injection (HTTP response splitting) and reflected cross-site scripting (XSS) vulnerabilities.
License GPLv3
Design Architecture Threaded
Notes A Next Generation of WebScarab is under development. The source code of WebScarab is available through git.