34
APPLICATION INTERFACES [email protected] OWASP NY/NJ Chapter Mee3ng – Nov 2, 2010 MANIPULATING WEB h=p://groundspeed.wobot.org

Groundspeed Presentation at the OWASP NY/NJ

Embed Size (px)

DESCRIPTION

These are the slides for the Groundspeed presentation at the OWASP NY/NJ chapter meeting on Nov 2, 2010

Citation preview

Page 1: Groundspeed Presentation at the OWASP NY/NJ

APPLICATION INTERFACES

[email protected]

OWASP  NY/NJ  Chapter  Mee3ng  –  Nov  2,  2010  

MANIPULATING WEB

h=p://groundspeed.wobot.org  

Page 2: Groundspeed Presentation at the OWASP NY/NJ
Page 3: Groundspeed Presentation at the OWASP NY/NJ

User problem?

Page 4: Groundspeed Presentation at the OWASP NY/NJ

User problem?

Page 5: Groundspeed Presentation at the OWASP NY/NJ

The Standard Approach:

Interact with interface

Intercept and modify HTTP

Analyze response

1   2   3  

Page 6: Groundspeed Presentation at the OWASP NY/NJ

Advantages: single point of interception, absolute control over data

Page 7: Groundspeed Presentation at the OWASP NY/NJ

Historic reason: browser used to be a closed box,

no easy way to extend

Page 8: Groundspeed Presentation at the OWASP NY/NJ

The origin of input data: HTML interface (forms)

client side logic (JavaScript) the HTTP client (cookies)

Page 9: Groundspeed Presentation at the OWASP NY/NJ

Question: can this information be useful for

improving the penetration test?

Page 10: Groundspeed Presentation at the OWASP NY/NJ

Core question: would it be useful to look for a

different approach?

Page 11: Groundspeed Presentation at the OWASP NY/NJ

http://groundspeed.wobot.org

open source Firefox add-on released in Nov 09 at AppSecDC

Page 12: Groundspeed Presentation at the OWASP NY/NJ

Groundspeed goal: manipulate the webapp interface to

remove client-side limitations in order to work inside the browser

Page 13: Groundspeed Presentation at the OWASP NY/NJ

Things you can do: change the type of form fields

remove size and length limitations remove JS event handlers

Page 14: Groundspeed Presentation at the OWASP NY/NJ

Demo: see Groundspeed in action

Page 15: Groundspeed Presentation at the OWASP NY/NJ

But wait a minute: why is this really different than

manipulating HTTP requests?

Page 16: Groundspeed Presentation at the OWASP NY/NJ

#1 reason: in order to understand

information we need context

Page 17: Groundspeed Presentation at the OWASP NY/NJ

Context problems: without the context we need to fill

in for what is missing

Page 18: Groundspeed Presentation at the OWASP NY/NJ

Ambiguous context: if the context is not clear,

we can make mistakes

Page 19: Groundspeed Presentation at the OWASP NY/NJ

Context is important!

Page 20: Groundspeed Presentation at the OWASP NY/NJ

Labels are for humans: the function of the interface is to

provide context to users

Page 21: Groundspeed Presentation at the OWASP NY/NJ

Parameters are for code: HTTP parameters are meant for the server side code, they can be

any arbitrary value

Page 22: Groundspeed Presentation at the OWASP NY/NJ

The mapping problem: when we manipulate HTTP

requests we need to map parameter to interface label

Page 23: Groundspeed Presentation at the OWASP NY/NJ

#2 reason: working at the interface reduces

the unnecessary tasks

Page 24: Groundspeed Presentation at the OWASP NY/NJ

Test Friction: all this creates “test friction”, makes the test less efficient

(and more boring)

Page 25: Groundspeed Presentation at the OWASP NY/NJ

Ok, but… how is this different than using

Firebug or the Web Dev Extension?

Page 26: Groundspeed Presentation at the OWASP NY/NJ

Firebug and WedDev Extension: very powerful but developer tools,

when used for security will produce a lot of ‘test friction’

Page 27: Groundspeed Presentation at the OWASP NY/NJ

Hammers versus screwdrivers: ‘test friction’ always appears when

you use a tool that was not designed for the job

Page 28: Groundspeed Presentation at the OWASP NY/NJ

Performance load: degree of mental and physical

activity to perform a task

Page 29: Groundspeed Presentation at the OWASP NY/NJ

Improved interface

Page 30: Groundspeed Presentation at the OWASP NY/NJ

Conclusion #1: thinking about the nature of input

data can make our life easier

create an input testing toolbox

Page 31: Groundspeed Presentation at the OWASP NY/NJ

Input data toolbox: interface layer (Groundspeed)

javascript layer (Firebug) HTTP layer (Burp)

Page 32: Groundspeed Presentation at the OWASP NY/NJ

Conclusion #2: tool design should focus on user

process (not the problem)

process = user + problem + context

Page 33: Groundspeed Presentation at the OWASP NY/NJ

Conclusion #3: bring the tool into the browser

or the browser into the tool

Page 34: Groundspeed Presentation at the OWASP NY/NJ

Thank you! more about groundspeed:

http://groundspeed.wobot.org

comments, questions: [email protected]