[Owasp-webscarab] Design assistance required

Rogan Dawes lists at dawes.za.net
Wed Aug 16 03:53:25 EDT 2006


Hi folks,

Even though I have been working on WebScarab-NG for a few months 
already, I am now looking at redesigning it ;-) And to do that 
successfully, I need your help.

Lots of people complain that the existing WebScarab is non-intuitive. 
The features/plugins are pretty much isolated from each other, and do 
not make an integrated tool. So, I am looking for suggestions on how to 
improve this situation.

At this stage, I am aiming for conceptual descriptions of how it will 
work. Let me give my suggestions, followed by the places where I need help:

I am thinking of having two major areas of focus, namely interactive 
testing and automated testing.

Interactive testing
===================

This area would cover things like the intercepting proxy, as well as 
manually creating or editing and replaying requests. The WebServices 
plugin would probably fit well in this area too, since it is simply an 
"assisted" manual request. I also plan to have a module that shows 
detected forms (parsed from observed HTML), and allows you to fill them, 
submit them, and observe the results. Again, this would probably 
classify as "assisted" manual request, I guess.

I anticipate having a unified conversation list for conversations 
resulting from these modules, which could be reviewed, annotated, 
replayed, etc. There would be a table column indicating the source of 
the conversation, much as we see now in the original WebScarab.

Automated testing
=================

This area would cover things like the spider, automated checking for 
backups/zips of files/directories, automated checking for directory 
index pages, the fuzzer, automated checks for Cross Site Scripting or 
Header injection, and any other automated testing (Nikto-style, 
perhaps?), SQL injection brute forcing, OPTIONS testing, etc

I anticipate having individual conversation lists for each of these 
modules, possibly filtered by batches (e.g. the most recent fuzz 
results). Alternatively, it may make sense to have a unified list of 
automated conversations, filterable by module, and batch?

Common functions
================

All conversation lists would have common functionality:

Search - The ability to reduce the number of visible conversations based 
on certain criteria. These criteria may be a simple iTunes-like text 
filter, or it may be as complex as a BeanShell script (as exists in the 
current WebScarab)

Compare - shows the degree of similarity between an indicated "basis" 
conversation, and the other conversations in the list. This will allow 
you to identify "interesting" conversations amongst a group of mainly 
identical responses. This is most useful in a fuzzing situation, I guess.

Authorisation detection/tagging - The idea here is to annotate 
conversations with information about the user or role that the 
conversation was executed under. By identifying (manually initially, by 
rule eventually) "transition points" where a session is authenticated, 
timed out, etc, we can indicate what user/role was in force when a 
particular conversation occurred. This should be useful to highlight 
access to information by anonymous users, access to sensitive 
information by less-privileged users, etc. I expect that we should be 
able to handle HTTP authentication, session cookies, and form variables 
without too much difficulty. One thing this might be used for is to 
construct an "access matrix", showing what "functions" each user 
accessed, and whether that access was successful or not.

Marking bogus conversations - one unfortunate result from automated (as 
well as manual) testing, is the introduction of "bogus" conversations. 
This is most prevalent when the server returns "friendly" error messages 
- i.e. "200 Not found", instead of "404 Not found". It would be useful 
to be able to either detect these automatically, or mark them manually, 
so that they would not be considered by some of the other plugins, or 
not clutter up the conversation lists.

Marking findings - Ultimately, what WebScarab is intended to do is 
support a user in finding vulnerabilities. These vulnerabilities 
manifest themselves in (sequences of) conversations, which comprise the 
evidence of the vulnerability. This feature will allow the user to 
aggregate conversations into a finding, as well as describe the nature 
of the finding. This will then be able to be reported on, or reviewed, etc.

User interface elements
=======================

I plan to have right-click menus for all editable text fields which will 
allow the user to replace the selected text with alternatively-encoded 
versions. This is effectively the Transcoder, but immediately accessible 
so you don't have to do so much copy and pasting.

Summary
=======

So, that was a fairly random brain dump of functionality that is 
eventually planned for Webscarab. What I'd love to get back from you all 
is commentary on whether this looks like functionality that would be 
useful in your testing, how you would like to see it presented (UI), etc.

You may have seen the screenshot of the current version of WebScarab-NG 
<http://dawes.za.net/rogan/webscarab/ws-ng.png>. Does this look like a 
good interface? What would you like to see? If you could make mockups of 
the desired interfaces, that would be most excellent, but even just 
descriptions of how you would like it to work would be valuable.

If you are interested in adding functionality to WebScarab yourself, 
tell me what functions you'd need in order to do so.

At this stage, I am considering a ground-up rewrite (even abandoning 
most of the existing WS-NG), so now is the time. ANYTHING goes. Let me 
have it!

Rogan



More information about the Owasp-webscarab mailing list