Copyright © 2006 - The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.

Slides:



Advertisements
Similar presentations
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Advertisements

Webgoat.
The OWASP Foundation Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under.
Closing the Gap: Analyzing the Limitations of Web Application Vulnerability Scanners David Shelly Randy Marchany Joseph Tront Virginia Polytechnic Institute.
© 2008 Security Compass inc. 1 Firefox Plug-ins for Application Penetration Testing Exploit-Me.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
The OWASP Foundation Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
Creating Stronger, Safer, Web Facing Code JPL IT Security Mary Rivera June 17, 2011.
DEV333. Describe each main attack Demo how the attack works Fix our poor vulnerable application! Why Script Kiddies, Why? Click to Hack.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
The OWASP Foundation Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under.
Automating Bespoke Attack Ruei-Jiun Chapter 13. Outline Uses of bespoke automation ◦ Enumerating identifiers ◦ Harvesting data ◦ Web application fuzzing.
Introduction to Web Application Security
Leveraging User Interactions for In-Depth Testing of Web Applications Sean McAllister, Engin Kirda, and Christopher Kruegel RAID ’08 1 Seoyeon Kang November.
The OWASP Foundation Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under.
Introduction to the OWASP Top 10. Cross Site Scripting (XSS)  Comes in several flavors:  Stored  Reflective  DOM-Based.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
W3af LUCA ALEXANDRA ADELA – MISS 1. w3af  Web Application Attack and Audit Framework  Secures web applications by finding and exploiting web application.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
Copyright 2007 © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright 2007 © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
CSCI 6962: Server-side Design and Programming Web Services.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Cross Site Integration “mashups” cross site scripting.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
Hilton Giesenow Software Architect ConseQuent Software Development
OWASP Top Ten #1 Unvalidated Input. Agenda What is the OWASP Top 10? Where can I find it? What is Unvalidated Input? What environments are effected? How.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
October 3, 2008IMI Security Symposium Application Security through a Hacker’s Eyes James Walden Northern Kentucky University
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Web Applications Testing By Jamie Rougvie Supported by.
Building Secure Web Applications With ASP.Net MVC.
PwC New Technologies New Risks. PricewaterhouseCoopers Technology and Security Evolution Mainframe Technology –Single host –Limited Trusted users Security.
Web Application with AJAX CS 526 advanced interned and Web system Presenters Faris Kateb Mohammed AbdulAziz Omar Alzahrani.
ICM – API Server & Forms Gary Ratcliffe.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
Copyright © The OWASP Foundation This work is available under the Creative Commons SA 2.5 license The OWASP Foundation OWASP Denver February 2012.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
AJAX and REST. Slide 2 What is AJAX? It’s an acronym for Asynchronous JavaScript and XML Although requests need not be asynchronous It’s not really a.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
SECURE DEVELOPMENT. SEI CERT TOP 10 SECURE CODING PRACTICES Validate input Use strict compiler settings and resolve warnings Architect and design for.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Unvalidated Redirects & Forwards
CSCE 548 Student Presentation Ryan Labrador
An Introduction to Web Application Security
AJAX and REST.
Finding and Fighting the Causes of Insecure Applications
Oklahoma City.
Finding and Fighting the Causes of Insecure Applications
Presentation transcript:

Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike 2.5 License. To view this license, visit The OWASP Foundation OWASP AppSec Seattle Oct Using Sprajax to Test AJAX Security Dan Cornell, OWASP San Antonio Leader Principal, Denim Group, Ltd. (210)

OWASP AppSec Seattle

3 Agenda  Introduction  AJAX Security Basics  Current Black Box Scanners  Issues with Current Scanners  How Sprajax is Different  Demonstration  Sprajax Approach and Architecture  Example: Microsoft Atlas Support  Next Steps  Questions

OWASP AppSec Seattle Introduction  Dan Cornell  Principal of Denim Group, Ltd.  MCSD, Java 2 Certified Programmer

OWASP AppSec Seattle AJAX Security Basics  Shares many principles with normal web application security  Risks are poorly understood  AJAX increases an application’s attack surface  Same problems as before:  SQL injection  Parameter tampering  Authentication/Authorization issues

OWASP AppSec Seattle Why Sprajax?  Deal with the issue of increased attack surface  Deal with the issue of multiple AJAX frameworks

OWASP AppSec Seattle Current Black Box Scanners  Current scanners are good at scanning traditional web applications  Pages, forms, parameters  Normal HTTP request are easy to craft  Current scanners have limited AJAX abilities  Scan JavaScript for URLs  Parse/execute JavaScript to find endpoints

OWASP AppSec Seattle Issues with Current Scanners  AJAX applications often use frameworks that build on top of raw XMLHttpRequest  Frameworks do not necessarily use plain HTTP requests  JSON for Atlas  Serialized Java for Google Web Toolkit  And so on…  Normal HTTP POST data:  key=Zen+and+the+Art+of+Motorcycle+Maintenance&key=Cryptonomicon  JSON HTTP POST data:  [“Zen and the Art of Motorcycle Maintenance”, “Cryptonomicon”]  If the AJAX framework expects JSON (or something else) it will never see normally-formatted requests

OWASP AppSec Seattle Normal HTTP Request Sent to Web Application

OWASP AppSec Seattle Normal HTTP Requests Sent to AJAX Framework

OWASP AppSec Seattle How Sprajax Is Different  Spiders web applications as current scanners do  Detects AJAX frameworks in use  Detects AJAX-specific endpoints for the frameworks in use  Fuzzes endpoints using framework-appropriate HTTP requests

OWASP AppSec Seattle AJAX Web Request Sent to AJAX Framework

OWASP AppSec Seattle Types of Vulnerabilities  Technical Vulnerabilities  Surface due to insecure programming techniques  Typically due to poor input handling, input validation and output handling and escaping  Most “scanner” tools primarily find technical vulnerabilities  Remediation: coding changes  Logical Vulnerabilities  Surface due to insecure program logic  Typically due to poor decisions about trust  Most “scanner” tools are powerless to find logical vulnerabilities  Remediation: architecture and design changes

OWASP AppSec Seattle Sprajax Limitations  Should actually be “limitations of automated black-box testing”  Can find technical application flaws  SQL injection  Cross site scripting (XSS)  Bad error handling  Can’t find logical application flaws  Many parameter and cookie tampering flaws  Authentication/authorization  Not a limitation of the tool, but a limitation of the approach

OWASP AppSec Seattle Demonstration  Simple Sprajax demonstration on a Microsoft Atlas site  Simple Sprajax demonstration on a Google Web Toolkit site  Footprinting and fuzzing are in-progress

OWASP AppSec Seattle Sprajax Approach and Architecture  NOTE: Included Open Source packages do not necessarily endorse Sprajax  Spider the web site  Uses Jeff Heaton’s C# spider (  Determine what frameworks are in use  Look at included JavaScript files  Enumerate AJAX endpoints  Plugin architecture “watches” pages and tags through the course of the spidering  Implement DocumentWorkerListener interface  Fuzz the endpoints with framework-appropriate requests  Microsoft Atlas uses SOAP web services with JSON  Uses DynWSLib for dynamic SOAP client creation (

OWASP AppSec Seattle Sprajax Fuzzing  Use a list of “interesting” values for various data types:  String: string.Empty, ‘JUNK, “JUNK and so on  Integer: int.MinValue, -1025, -1024, -1023, -1, 0, 1 and so on  Single Float: float.MinValue, float.MaxValue, float.NaN, float.NegativeInfinity, float.PositiveInfinity, 0.0 and so on

OWASP AppSec Seattle Sprajax Fuzzing  Fuzzing creates an n-dimensional search space based on lists of primitives  Strings: currently 6  Integers: currently 25  Single Floats: currently 9  Double Floats: currently 9  MyMethod(int) – 1D - 25 calls  MyMethod2(int, string) – 2D – 150 calls  MyMethod3(int, int, string) – 3D – 3750 calls  Adding multi-threading will be key going forward

OWASP AppSec Seattle Example: Microsoft Atlas Support  Included files that are an indicator  Atlas.js (older versions)  WebResource.axd  Web Service endpoints indicated by: <add src="Services/UserService.asmx/js“ onscriptload="UserService.path”= '/DenimGroup.Sprajax.Atlas.DemoSite/Services/UserService.asmx'" />  Valid requests make calls to SOAP Web Services  Object serialization uses JSON rather than XML ["Zen and the Art of Motorcycle Maintenance","Cryptonomicon"]

OWASP AppSec Seattle Next Steps  More modular persistence support  Add support for more AJAX frameworks  Increase sophistication of testing  Improve fuzzing  Break out into individual tools

OWASP AppSec Seattle Next Steps: More Modular Persistence Support  Right now SQL Server 2005 is required  Not really necessary – how many people need to compare results across scans at the current time  People have requested MySQL support  Side note: Run using Mono?  Replace current implementation with a Provider model  Support for SQL Server, MySQL (perhaps) and in- memory

OWASP AppSec Seattle Next Steps: More AJAX Frameworks  Google Web Toolkit (GWT)  Detection already works  Finding endpoints is more complicated but not impossible  Requests appear to send serialized Java objects  Direct Web Remoting (DWR)  And so on – at least detect all major frameworks and fuzz test the most popular  Next release will have more modular design so that the plugins can be developed and maintained separately

OWASP AppSec Seattle Next Steps: Increase Sophistication of Testing  Current: Only looking for error responses  SOAP errors  Can tag inputs as being associated with a vulnerability type (SQL injection, Cross Site Scripting, etc)  Can flag suspicious text in error messages  ODBC  SQL  Test for injection attacks that might not result in errors  Could also add tests for flawed versions of AJAX frameworks  More like what you would see from Nessus

OWASP AppSec Seattle Next Steps: Improve Fuzzing  Multi-threading will be key  Current only methods with primitive parameters are supported  Add support for objects with properties as their own n-dimensional spaces to be traversed  Will eventually need to get “smart” about which combinations are selected  Selectively choose input patterns  Data mine the results

OWASP AppSec Seattle Next Steps: Break Out Into Individual Tools  This would assist in manual vulnerability testing  SOAP Web Services Fuzzer  GWT Request Crafter  JSON Console  And so on…

OWASP AppSec Seattle Questions Dan Cornell (210) Sprajax Site: Sprajax Mailing List: Denim Group Website: Denim Group Blog: denimgroup.typepad.comdenimgroup.typepad.com